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