Потому что (x : decimal, y : decimal)
- это кортеж из двух десятичных знаков.И подпись вашей функции decimal * decimal -> decimal
.Т.е. он принимает один параметр (кортеж) и возвращает десятичное значение.
Вам нужно вместо этого передать два параметра: (x : decimal) (y : decimal)
let add (x : decimal) (y : decimal) = x + y // decimal -> decimal -> decimal
let x = 2m |> add 3m
Помните, если вы видите ,
в F #, тогдаты смотришь на кортеж.Запятая здесь не используется в качестве разделителя параметров.