0

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

open Batteries

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

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

  • |>
  • _

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

4

2 回答 2

2

`Foo并且[>是多态变体(http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual006.html#toc36)。对于初学者来说,它们可能不值得,但是您可以查看我的一个旧答案(在 OCaml 中扩展现有类型)以了解如何使用它们。

_是一个匹配任何东西的模式:

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

两者_都习惯于对编译器说“我不关心的事情”。

于 2013-11-11T12:25:55.040 回答
1

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

|>是一个中缀运算符:你可能想到的是Batteries中定义的那个,它是函数应用(x |> f含义f x)。

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

于 2013-11-11T12:27:35.633 回答