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