Почему двойная стрелка для лямбды Scala и C #? - PullRequest
9 голосов
/ 02 сентября 2010

Кто-нибудь знает какой-то фон, почему Scala и C # используют двойную стрелку (=>) для лямбды вместо единственной стрелки (->)?

Одиночная стрелка более распространена в литературе, используется в Haskell, O'Caml, F #, Groovy и т. Д., А также в IMO она также выглядит лучше:)

Ответы [ 4 ]

21 голосов
/ 02 сентября 2010

В C #, возможно, потому что оператор -> уже используется в случае небезопасного кода (LINK)

15 голосов
/ 03 сентября 2010

Пицца, которая была своего рода предшественником для Scala -> в типах функций. Я помню, что программисты на C ++ были озадачены этим выбором символа. Это основная причина, по которой Scala выбрала => AFAIRC. Кажется, C # ребята прошли через те же рассуждения.

10 голосов
/ 02 сентября 2010

В Scala есть также «стрелка карты», которая указывает на сопоставление элемента a другому b. Использование => для лямбды освобождает -> для таких вещей, как Map(1 -> "One", 2 -> "Two"), и, как другие отмечали, => не уникально для C # и Scala.

4 голосов
/ 03 сентября 2010

вам может быть интересно узнать, что в Scala вы можете использовать юникод-эквивалент для =>, а также другие стрелки: http://scala -programming-language.1934581.n4.nabble.com / More-unicode-альтернативы-для-ASCII-операторов-td2008146.html

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