F #: Почему я не могу использовать дополнительные параметры в свободных функциях?
Почему я не могу использовать необязательные параметры в свободных функциях, определенных с помощью "let"?
Почему они разрешены только в функциях-членах?
Ответ 1
Я подозреваю, что они предоставляются только для совместимости с функциями .NET. Это не то, с чем вы сталкиваетесь на функциональных языках. Проблема с необязательным параметром заключается в том, что вы не можете это сделать. Если параметр f второй функции является необязательным, то что
пусть g = f x
Является ли это функцией, принимающей один аргумент, или значением, полученным путем оценки f на x плюс второй параметр по умолчанию?
Ответ 2
Разрешено в OCaml. Поэтому его можно реализовать в F #.