Я читаю Learn You a Haskell для большого блага , и я никогда не знаю, как произносить операторы Haskell. У них есть "настоящие" имена? ?
Например, как вы читаете вслух такое выражение, как это?
Just (+3) <*> Just 9
Я знаю, что >>=
это «связать», но как насчет других? Так как Google не учитывает не алфавитно-цифровые символы, эффективный поиск довольно сложен ...
Я понимаю, что вы можете создавать свои собственные операторы, поэтому, конечно, не все операторы могут иметь имена, но я ожидаю, что общие (например, определенные в Applicative
или Monad
) должны иметь имена ...
<*>
произносится?" ? Даже если это не так, его ответы, вероятно, стоит проверить.()
произносится единица. Однажды я застрял перед аудиторией из пары сотен функциональных программистов, не знающих, как произнести это на моем слайде.Ответы:
Вот как я их произношу:
источник
(.)
это "сочинять".(.)
какof
и($)
какapplied to
:f . g . h $ x
следовательно, читаетсяf of g of h applied to x
. Но я понимаю расхождение в этой точке зрения!(.)
«после» более разумным. Композиция может быть обозначена в двух направлениях, и, если она называется «после», сразу же объясняется, как она работает.const 42 . fix id
можем ли мы сказать, чтоconst 42
«после» бесконечного цикла?++
«добавить» вместоconcat
, так какconcat
это уже вещь в Haskell, и ее утилита сильно отличается.источник
<*
? Это так редко используется, что у него нет общего названия?Мои личные фавориты - "левая рыба" (<= <) и "правая рыба" (> =>) . Которые являются просто левым и правым составом Клейсли операторов монад. Сочинять рыбки, сочинять!
источник
Я позволил себе собрать ответы в очень простую программу на Haskell, которая только путем сопоставления с образцом пытается перевести код на Haskell на английский. Я называю это,
letterator
потому что это переводит символы в буквыисточник
источник
<*>
,>>
...