您好,
我正在学习F#,并对“有趣”和“功能”关键词感到困惑。我的理解是,这些都是一样的。
// Use 'fun'
let testFunction1 = fun argument -> match argument with
| Some(x) -> x
| None -> 0
// Use 'function'
let testFunction2 = function
| Some(x) -> x
| None -> 0
'function'是“fun x - > match x with”的简写吗?这两者之间是否有任何运行时/优化差异?为什么我更喜欢使用一个而不是另一个?
就目前而言,“功能”似乎使代码难以阅读。我错过了什么吗?
答案 0 :(得分:12)
功能仅允许一个参数但允许模式匹配,而 fun 是定义函数的更通用和灵活的方式。看看这里:http://caml.inria.fr/pub/docs/manual-ocaml/expr.html
答案 1 :(得分:2)
这只是语法糖。就像在C#c => c = 'A'
中一样,delegate (char c) { return c = 'A'; }
是语法糖。这一切都归结为个人偏好。