Gibt es in OCaml eine Möglichkeit, sich selbst auf den Cons-Operator zu beziehen?OCaml Nachteile (: :) Operator?
Zum Beispiel kann ich (+)
und (*)
als int -> int -> int
Funktionen verwenden, aber ich kann nicht (::)
als 'a -> 'a list -> 'a list
Funktion, wie das folgende Beispiel zeigen verwenden:
# (+) 3 5;;
- : int = 8
# (*) 4 6;;
- : int = 24
# (::) 1 [2;3;4];;
Error: Syntax error: operator expected.
Gibt es eine Möglichkeit, ein Ergebnis wie (::)
zu produzieren anders als mit fun x y -> x::y
? Und weiß jemand, warum (::)
nicht in OCaml implementiert wurde?
Es würde funktionieren, wenn Sie die Argumente mit Klammern umgeben, so: '(: :) (1, [2; 3; 4]) ;;' –