Почему двойная стрелка для 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