Don';无法理解OCaml中的符号

Don';无法理解OCaml中的符号,ocaml,ocamlbuild,ocaml-batteries,Ocaml,Ocamlbuild,Ocaml Batteries,这些天我通过一些基本材料和一个用OCaml编写的项目来学习OCaml。但是我不理解OCaml中的一些符号。例如: open Batteries type char_token = [ | `Char of int | `Escape of char list ] 这些带符号的东西是什么意思 还有其他一些符号对我来说很难理解: |> \uuu 我在房间里什么也找不到。有人能解释一下上面这些符号的更多细节吗?或者只是向我推荐一些材料?`Foo和[>是多态

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

open Batteries

type char_token = [ 
      | `Char of int
      | `Escape of char list
      ]
这些带符号的东西是什么意思
还有其他一些符号对我来说很难理解:

  • |>
  • \uuu

我在房间里什么也找不到。有人能解释一下上面这些符号的更多细节吗?或者只是向我推荐一些材料?

`Foo和
[>
是多态变体()。对于初学者来说,它们可能不值得,但你可以看看我的一个旧答案()来了解如何使用它们

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

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

那里的
\uuu
都用来对编译器说“我不关心的东西”。`Foo和
[>
都是多态变体()。对于初学者来说,它们可能不值得,但你可以看看我的一个老答案()来了解如何使用它们

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

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

那里的
\uuu
都用来对编译器说“我不关心的东西”。`Foo和
[>
都是多态变体()。对于初学者来说,它们可能不值得,但你可以看看我的一个老答案()来了解如何使用它们

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

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

那里的
\uuu
都用来对编译器说“我不关心的东西”。`Foo和
[>
都是多态变体()。对于初学者来说,它们可能不值得,但你可以看看我的一个老答案()来了解如何使用它们

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

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

这两种代码都用来对编译器说“我不关心的东西”。

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

|>
是一个中缀运算符:您可能正在考虑中定义的中缀运算符,即函数应用程序(
x |>f
意思是
fx


\uuu
是匹配模式中的一个特殊符号,意思是“无需绑定即可匹配任何内容”。

以“are”开头的标识符。粗略地说,它们是结构类型的变体

|>
是一个中缀运算符:您可能正在考虑中定义的中缀运算符,即函数应用程序(
x |>f
意思是
fx


\uuu
是匹配模式中的一个特殊符号,意思是“无需绑定即可匹配任何内容”。

以“are”开头的标识符。粗略地说,它们是结构类型的变体

|>
是一个中缀运算符:您可能正在考虑中定义的中缀运算符,即函数应用程序(
x |>f
意思是
fx


\uuu
是匹配模式中的一个特殊符号,意思是“无需绑定即可匹配任何内容”。

以“are”开头的标识符。粗略地说,它们是结构类型的变体

|>
是一个中缀运算符:您可能正在考虑中定义的中缀运算符,即函数应用程序(
x |>f
意思是
fx


\u
是匹配模式中的一个特殊符号,意思是“无需绑定即可匹配任何内容”.

|>
实际上是在4.01中添加到标准库的。
|>
实际上是在4.01中添加到标准库的。
|>
实际上是在4.01中添加到标准库的。
实际上是在4.01中添加到标准库的。波浪线本身不是一个操作符;有
-
 ~-.
分别定义整数和浮点数的一元求反。这些都列在
Pervisives
模块文档中。还有~.的另一个用途。在OCaml中,您可以定义带标签(即命名)的函数参数,如:
让f~x~y=x-y
。现在,您可以根据名称而不是位置将参数传递给
f
让x=2在f~y~x
中让y=1将返回
1
而不是
-1
。瓷砖本身不是一个运算符;有定义一元n的
-
-.
。egation分别用于整数和浮点数。这些都列在
Pervasives
模块文档中。还有另一个用途是~。在OCaml中,您可以定义带标签的函数(即命名函数)参数,如:
让f~x~y=x-y
。现在,您可以根据名称而不是位置将参数传递给
f
让x=2在f~y~x
中让y=1将返回
1
而不是
-1
。瓷砖本身不是一个运算符;有定义一元n的
-
-.
。egation分别用于整数和浮点数。这些都列在
Pervasives
模块文档中。还有另一个用途是~。在OCaml中,您可以定义带标签的函数(即命名函数)参数,如:
让f~x~y=x-y
。现在,您可以根据名称而不是位置将参数传递给
f
让x=2在f~y~x
中让y=1将返回
1
而不是
-1
。瓷砖本身不是一个运算符;有定义一元n的
-
-.
。egation分别用于整数和浮点数。这些都列在
Pervasives
模块文档中。还有另一个用途是~。在OCaml中,您可以定义带标签的函数(即命名函数)参数,如:
let f~x~y=x-y
。现在,您可以根据名称而不是位置将参数传递给
f
let f~y~x中的y=1中的x=2
将返回
1
,而不是
-1