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

时间:2016-07-01 14:22:46

标签: function ocaml infix-notation

OCaml是否支持明文定义的中缀函数?

arg1 `plus` arg2 = arg1 + arg2 

感谢

2 个答案:

答案 0 :(得分:6)

没有。正如OCaml manual中所述,中缀运算符只能包含特殊字符,即!$%&*,{ {1}},+-./:<=,{{1 }},>?@^(或|但仅限于第一个位置)且不得以~开头, #!

要定义中缀操作,必须将符号放在括号中:

?

答案 1 :(得分:1)

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

您可以使用ppx对OCaml的语法进行或多或少的任意扩展,但这并不是轻易做到的事情(恕我直言)。

这是一个包含ppx信息链接的页​​面:https://ocaml.io/w/PPX