F#: Why can't I use optional parameters in loose functions?

旧时模样 提交于 2019-11-30 09:09:58

问题


Why can't I use optional parameters in loose functions defined with "let"?

Why are they only allowed in member functions?


回答1:


I suspect they are provided only for compatibility with .NET functions. They aren't something you encounter in functional languages. The problem with an optional parameter is you can't curry it. If a function f's second parameter is optional, what is

let g = f x
?

Is it a function taking one argument, or a value obtained by evaluating f on x plus the default second parameter?




回答2:


It is allowed in OCaml. Therefore it should be possible to implement it in F#.

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

I guess it has been omitted for simplicity in F#.



来源:https://stackoverflow.com/questions/946159/f-why-cant-i-use-optional-parameters-in-loose-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!