我正在输入“fun”关键字然后我记得你不必在C#中
不会这样:
List.map (x -> x + 1) [1..10]
与此同样具有表现力吗?:
List.map (fun x -> x + 1) [1..10]
这让我很好奇为什么“fun”关键字是必要的。有人可以澄清为什么“fun”关键字在语法上是必需的吗?
答案 0 :(得分:22)
没有它,语言就会模棱两可。
let x y = y z -> y z
x
是否在函数y
上调用z -> y z
或忽略其参数并返回函数y z -> y z
?
答案 1 :(得分:16)
已经有很多不错的投机答案......我会加入其中:
F#的核心语言与OCaml兼容,OCaml使用“fun”。
答案 2 :(得分:-1)
我知道作为currying的一部分,(请参阅此post),您可以替换:
let countOneToTen = fun y List.map(fun x -> x + 1) y
countOneToTen = [1..10]
与
let countOneToTen y = List.map(fun x -> x + 1) y
countOneToTen = [1..10]
没有有趣的关键字。