Почему двойная стрелка для Scala и C# lambdas?

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

одиночная стрелка более распространена в литературе, используется в Haskell, O'CAML, F#, Groovy и т. д. и Имо это тоже выглядит приятнее:)

4 ответов


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


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


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


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