F # позволяет превращать операторы в функции, окружая их с помощью (
)
: например, (+)
имеет тип int -> int -> int
.
Можно ли это сделать с помощью оператора списка cons, ::
?
Он не ведет себя как обычный двоичный оператор:
FSI> (::);;
(::);;
-^^
c:\temp\stdin(3,2): error FS0010: Unexpected symbol '::' in expression.
Expected ')' or other token.
И метод List.Cons
принимает кортеж; это не карри.
(Полезно иметь возможность сделать это. Например, вы можете использовать его для реализации map в терминах fold).