Function 如何在OCaml中定义中缀(不是符号,也不是运算符)函数?

Function 如何在OCaml中定义中缀(不是符号,也不是运算符)函数?,function,ocaml,infix-notation,Function,Ocaml,Infix Notation,OCaml支持明文定义的中缀函数吗 arg1 `plus` arg2 = arg1 + arg2 谢谢否。如中所述,中缀运算符只能包含特殊字符,即,$,%,&,+,-,,:,,,,,,,,,,,,,,,,,,,(或,,,,,,,,

OCaml支持明文定义的中缀函数吗

arg1 `plus` arg2 = arg1 + arg2 
谢谢

否。如中所述,中缀运算符只能包含特殊字符,即
$
%
&
+
-
(或
~

要定义中缀运算,必须将符号放在括号中:

# let (+++) x y = x + 2 * y;;
...
# 3 +++ 4;;

- : int = 11

基础语言不支持作为标识符的中缀运算符

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


这里是一个链接到ppx信息的页面:

它确实有标识符
land
lor
lxor
lnot
lsl
lsr
asr
mod
,以及
作为中缀运算符,但您不能定义自己的运算符