为什么我不能在用“let”定义的松散函数中使用可选参数?
为什么它们只允许在成员函数中使用?
答案 0 :(得分:20)
我怀疑它们仅用于兼容.NET功能。它们不是您在函数式语言中遇到的东西。可选参数的问题是您不能理解它。如果函数f的第二个参数是可选的,那么
让g = f x
?
是一个函数接受一个参数,还是通过评估x上的f加上默认的第二个参数获得的值?
答案 1 :(得分:2)
在OCaml中允许。因此应该可以在F#中实现它。
http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43
我想在F#中为了简单起见省略了它。