F#: действительно ли “забавное” ключевое слово необходимо?

Я вводил "забавное" ключевое слово, и затем я помнил, что Вы не имеете к в C#

Не был бы это:

List.map (x -> x + 1) [1..10]

Быть настолько выразительными?:

List.map (fun x -> x + 1) [1..10]

Это делает меня любопытным относительно того, почему "забавное" ключевое слово необходимо вообще. Кто-то может разъяснить, почему "забавное" ключевое слово синтаксически требуется?

20
задан rysama 18 December 2009 в 00:10
поделиться

3 ответа

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?

23
ответ дан 30 November 2019 в 00:01
поделиться

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'.

16
ответ дан 30 November 2019 в 00:01
поделиться

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.

-1
ответ дан 30 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: