OCaml是否支持明文定义的中缀函数?
arg1 `plus` arg2 = arg1 + arg2
感谢
答案 0 :(得分:6)
没有。正如OCaml manual中所述,中缀运算符只能包含特殊字符,即!
,$
,%
,&
,*
,{ {1}},+
,-
,.
,/
,:
,<
,=
,{{1 }},>
,?
,@
,^
(或|
但仅限于第一个位置)且不得以~
开头, #
或!
。
要定义中缀操作,必须将符号放在括号中:
?
答案 1 :(得分:1)
基本语言不支持作为标识符的中缀运算符。
您可以使用ppx对OCaml的语法进行或多或少的任意扩展,但这并不是轻易做到的事情(恕我直言)。
这是一个包含ppx信息链接的页面:https://ocaml.io/w/PPX