18

为什么我不能在用“let”定义的松散函数中使用可选参数?

为什么它们只允许在成员函数中使用?

4

2 回答 2

22

我怀疑它们只是为了与 .NET 功能兼容而提供的。它们不是您在函数式语言中遇到的东西。可选参数的问题是你不能咖喱它。如果函数 f 的第二个参数是可选的,那么它是什么

让 g = fx
?

它是一个接受一个参数的函数,还是一个通过在 x 上评估 f 加上默认的第二个参数而获得的值?

于 2009-06-03T17:55:55.540 回答
4

在 OCaml 中是允许的。因此应该可以在 F# 中实现它。

http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43

我想在 F# 中为了简单起见已将其省略。

于 2015-07-11T14:37:14.063 回答