F #: необходимо ли ключевое слово "fun"? - PullRequest
19 голосов
/ 18 декабря 2009

Я набирал ключевое слово "fun", а потом вспомнил, что вам не нужно в C #

Не так ли:

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

Быть таким же выразительным, как этот?

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

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

Ответы [ 3 ]

22 голосов
/ 18 декабря 2009

Язык без него неоднозначен.

let x y = y z -> y z

x вызывает y функцию z -> y z или игнорирует ее аргумент и возвращает функцию y z -> y z?

16 голосов
/ 18 декабря 2009

Уже много хороших умозрительных ответов ... Я добавлю к смеси:

F # имеет базовый язык, совместимый с OCaml, а OCaml использует 'fun'.

0 голосов
/ 18 декабря 2009

Я знаю, как часть карри, (см. сообщение ) вы можете заменить:

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]

без ключевого слова fun.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...