如何在OCaml中定义中缀(不是符号也不是操作符)函数



OCaml是否支持以明文形式定义的中音函数?

arg1 `plus` arg2 = arg1 + arg2 

谢谢

No。OCaml手册中说明,中缀运算符只能包含特殊字符,即!$%&*+-./:<=>?@^|~(或#,但只能在首位),且不能以!?~开头。

为了定义中缀操作,必须将符号放入括号中:

# let (+++) x y = x + 2 * y;;
...
# 3 +++ 4;;
- : int = 11

基语言不支持作为标识符的中缀操作符

您可以使用ppx对OCaml的语法进行或多或少的任意扩展,但这不是一件容易的事情。

这是一个链接到ppx info的页面:https://ocaml.io/w/PPX

最新更新