Я вводил "забавное" ключевое слово, и затем я помнил, что Вы не имеете к в C#
Не был бы это:
List.map (x -> x + 1) [1..10]
Быть настолько выразительными?:
List.map (fun x -> x + 1) [1..10]
Это делает меня любопытным относительно того, почему "забавное" ключевое слово необходимо вообще. Кто-то может разъяснить, почему "забавное" ключевое слово синтаксически требуется?
The language is ambiguous without it.
let x y = y z -> y z
Does x
call y
on the function z -> y z
or does it ignore its argument and return the function y z -> y z
?
Lots of decent speculative answers already... I'll add to the mix:
F# has a core language that's compatible with OCaml, and OCaml uses 'fun'.
I know as part of currying, (see this post) you can replace:
let countOneToTen = fun y List.map(fun x -> x + 1) y
countOneToTen = [1..10]
with
let countOneToTen y = List.map(fun x -> x + 1) y
countOneToTen = [1..10]
without the fun keyword.