В 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?