在OCaml中,是否有方法可以单独引用cons运算符?OCaml cons(:)运算符?
例如,我可以用(+)
和(*)
为int -> int -> int
功能,但我不能使用(::)
作为'a -> 'a list -> 'a list
功能,如下面的例子显示:
# (+) 3 5;;
- : int = 8
# (*) 4 6;;
- : int = 24
# (::) 1 [2;3;4];;
Error: Syntax error: operator expected.
有没有产生像(::)
结果的方式除了fun x y -> x::y
?有没有人知道为什么(::)
没有在OCaml中实现?
如果用圆括号包围参数,它就会起作用,如下所示:'(::)(1,[2; 3; 4]);;' –