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