【发布时间】:2010-10-31 01:50:19
【问题描述】:
为什么我不能在用“let”定义的松散函数中使用可选参数?
为什么它们只允许在成员函数中使用?
【问题讨论】:
为什么我不能在用“let”定义的松散函数中使用可选参数?
为什么它们只允许在成员函数中使用?
【问题讨论】:
我怀疑它们只是为了与 .NET 函数兼容而提供的。它们不是您在函数式语言中遇到的东西。可选参数的问题是你不能咖喱它。如果一个函数f的第二个参数是可选的,那是什么
让 g = f x
?
它是一个接受一个参数的函数,还是一个通过在 x 上计算 f 加上默认的第二个参数获得的值?
【讨论】:
在 OCaml 中是允许的。因此应该可以在 F# 中实现它。
http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43
我想在 F# 中为了简单起见已将其省略。
【讨论】: