不了解OCaml中的符号

时间:2013-11-11 11:08:56

标签: ocaml ocamlbuild ocaml-batteries

这些天我通过一些基本材料和一个用OCaml编写的项目来学习OCaml。但我不理解OCaml中的一些符号。例如:

open Batteries

type char_token = [ 
      | `Char of int
      | `Escape of char list
      ]

这些带符号的东西是什么意思?
还有其他符号我很难理解:

  • |>
  • _

我在OCaml Manual找不到任何内容。有人可以解释一下上面符号的更多细节吗?或者只是向我推荐一些材料?

2 个答案:

答案 0 :(得分:2)

``Foo and [>`是多态变体(http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual006.html#toc36)对初学者来说可能不值得,但是你可以看一下我的旧答案(Extending an existing type in OCaml)看看如何使用它们。

_是一种匹配任何内容的模式:

let head l = match l with
| x :: _ -> x
| _ -> failwith "empty list"

两者都有用来对编译器说“我不关心的事情”。

答案 1 :(得分:1)

以`polymorphic variants开头的标识符。粗略地说,它们是结构类型的变体。

|>是一个中缀运算符:您可能正在考虑Batteries中定义的那个,即函数应用程序(x |> f表示f x)。

_是匹配模式中的特殊符号,意思是“匹配任何内容而不进行绑定”。