Как вы говорите `\ 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" - эффективно, стрелка становится запятой в этом случае.