F #: Почему я не могу использовать дополнительные параметры в свободных функциях?

Почему я не могу использовать необязательные параметры в свободных функциях, определенных с помощью "let"?

Почему они разрешены только в функциях-членах?

Ответы

Ответ 1

Я подозреваю, что они предоставляются только для совместимости с функциями .NET. Это не то, с чем вы сталкиваетесь на функциональных языках. Проблема с необязательным параметром заключается в том, что вы не можете это сделать. Если параметр f второй функции является необязательным, то что

пусть g = f x

Является ли это функцией, принимающей один аргумент, или значением, полученным путем оценки f на x плюс второй параметр по умолчанию?