这些天我通过一些基础材料和一个用OCaml写成的项目学习OCaml。但我不理解OCaml中的一些符号。例如:
open Batteries
type char_token = [
| `Char of int
| `Escape of char list
]这些符号的意思是什么?
另外,我也很难理解其他符号:
我在OCaml手册里找不到任何东西。有人能解释更多关于上面的符号的细节吗?还是给我推荐些材料?
发布于 2013-11-11 12:25:55
`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-11 12:27:35
以‘are 多态变体’开头的标识符。粗略地说,它们是结构类型的变体。
|>是一个infix操作符:您可能想到的是在电池中定义的一个,即函数应用程序(x |> f,意为f x)。
_是匹配模式中的一个特殊符号,意思是“匹配任何东西而不进行绑定”。
https://stackoverflow.com/questions/19904832
复制相似问题