Как вы говорите `\ x → y`?
Как выражение \x -> y
обычно произносится с помощью программистов Haskell?
Я спрашиваю, потому что я обычно говорю "лямбда-екс-точка почему", потому что он написал λx.y
в общем контексте, и я познакомился с лямбда-исчислением через книги и заметки, не услышав, чтобы кто-то переводил термины в речь. Но это стрела, а не точка, в Haskell.
Я понимаю, что люди, занимающиеся компьютерной наукой, часто лишаются точки в речи ( "лямбда-екс [короткая пауза] y" ). Программисты F # и С#, которые мне говорят, часто выражают эквивалентное выражение x => y
, поскольку "eks идет к тому, почему". Я не знаю, как подобные конструкции говорят в других контекстах.
Итак, среди Haskellers это "лямбда-екс arrow почему" или что?
Ответы
Ответ 1
Я обычно произношу его как "lambda x to y". Это очень коротко и соответствует тому, как вы вводите его в TeX: \lambda x \to y
. (Как милая нота, у меня есть режим ввода TeX в моем редакторе, поэтому я мог бы ввести выше, чтобы получить λ x → y
.: P)
Тем не менее, я уверен, что все поймут вас, если вы скажете "lambda x dot y" - большинство людей, по крайней мере, знакомы с этой нотацией, и очень легко угадать, что вы подразумеваете под контекстом.
Я никогда не слышал, чтобы кто-то сказал, что "идет", однако.
Ответ 2
Отвечая на вопрос: на мой взгляд, я часто говорю это как "x идет к y" или просто "x to y", но я думаю, что он немного адаптируется к некоторым общим функциям более высокого порядка. Если бы у вас было map (\x -> (x * 2) - 1) foo
, я бы подумал об этом как "map x to x times two минус один на foo". Однако для чего-то вроде filter (\x -> x /= 6) foo
я бы прочитал его как "фильтр x, x не равен 6, на foo" - эффективно, стрелка становится запятой в этом случае.