谁能给我解释一下这个 OCAML 语法
Could anyone explain this OCAML syntax to me
我正在尝试将字符串附加到现有字符串。
我在这里遇到了 this 线程来解释它。
仅供参考,我将该页面的内容粘贴到此处
let (^$) c s = s ^ Char.escaped c (* append *)
let ($^) c s = Char.escaped c ^ s (* prepend *)
现在我想知道 (^$)
在
中是什么意思
let (^$) c s = s ^ Char.escaped c (* append *)
This 此处的页面指出
operator ^ is for string concatenation
什么是 (^$)?
就是把给定的字符追加到带转义的字符串中:
'x' ^$ "hello" ----> "hellox"
'\n' ^$ "hello" ----> "hello\n"
@icktoofay 是正确的,这个代码:
let (^$) c s = s ^ Char.escaped c
正在定义一个新的运算符^$
。
您可以将运算符括在括号中,将其用作普通(前缀)函数名。事实上,这就是您 定义 运算符时所做的事情。
$ ocaml
OCaml version 4.02.1
# (+) 44 22;;
- : int = 66
# let (++++) x y = x * 100 + y;;
val ( ++++ ) : int -> int -> int = <fun>
# 3 ++++ 5;;
- : int = 305
OCaml 中的中缀运算符以一个类似运算符的字符 =<>@^|&+-*/$%
开头,然后可以有任意数量的其他类似运算符的字符 !$%&*+-./:<=>?@^|~
。所以你可以有一个中缀运算符 $^
或 $^??@+
等等。
参见 OCaml 手册的 Section 6.1。
我正在尝试将字符串附加到现有字符串。 我在这里遇到了 this 线程来解释它。 仅供参考,我将该页面的内容粘贴到此处
let (^$) c s = s ^ Char.escaped c (* append *)
let ($^) c s = Char.escaped c ^ s (* prepend *)
现在我想知道 (^$)
在
let (^$) c s = s ^ Char.escaped c (* append *)
This 此处的页面指出
operator ^ is for string concatenation
什么是 (^$)?
就是把给定的字符追加到带转义的字符串中:
'x' ^$ "hello" ----> "hellox"
'\n' ^$ "hello" ----> "hello\n"
@icktoofay 是正确的,这个代码:
let (^$) c s = s ^ Char.escaped c
正在定义一个新的运算符^$
。
您可以将运算符括在括号中,将其用作普通(前缀)函数名。事实上,这就是您 定义 运算符时所做的事情。
$ ocaml
OCaml version 4.02.1
# (+) 44 22;;
- : int = 66
# let (++++) x y = x * 100 + y;;
val ( ++++ ) : int -> int -> int = <fun>
# 3 ++++ 5;;
- : int = 305
OCaml 中的中缀运算符以一个类似运算符的字符 =<>@^|&+-*/$%
开头,然后可以有任意数量的其他类似运算符的字符 !$%&*+-./:<=>?@^|~
。所以你可以有一个中缀运算符 $^
或 $^??@+
等等。
参见 OCaml 手册的 Section 6.1。