Estou lendo Aprenda um Haskell para um grande bem , e nunca sei como pronunciar os operadores Haskell. Eles têm nomes "reais"? ?
Por exemplo, como você lê em voz alta uma expressão como esta?
Just (+3) <*> Just 9
Eu sei que >>=
é "vincular", mas e os outros? Como o Google não leva em consideração caracteres não alfanuméricos, é difícil fazer uma pesquisa eficiente ...
Sei que você pode criar seus próprios operadores, portanto, é claro que nem todos os operadores podem ter nomes, mas espero que os mais comuns (por exemplo, aqueles definidos em Applicative
ou Monad
) devam ter nomes ...
<*>
pronuncia?" ? Mesmo que não seja, suas respostas provavelmente valem a pena conferir.()
é unidade pronunciada. Uma vez, me vi preso a uma platéia de algumas centenas de programadores funcionais sem saber como pronunciar isso no meu slide.Respostas:
Aqui está como eu os pronunciei:
fonte
(.)
é "compor".(.)
comoof
e($)
comoapplied to
:f . g . h $ x
é, portanto, lidof of g of h applied to x
. Mas entendo a divergência nesse ponto de vista!(.)
como "depois" é mais sensato. A composição pode ser indicada em duas direções, e chamá-lo de "depois" também explica imediatamente como funciona.const 42 . fix id
, podemos realmente dizer queconst 42
vem "depois" de um loop infinito?++
"anexar" em vez deconcat
, já queconcat
já é uma coisa em Haskell e sua utilidade é muito diferente.fonte
<*
? É tão raramente usado que não tem um nome comum?Meus favoritos pessoais são "peixe esquerdo" (<= <) e "peixe direito" (> =>) . Quais são apenas a composição Kleisli esquerda e direita dos operadores de mônadas. Componha peixe, componha!
fonte
Tomei a liberdade de reunir as respostas em um programa haskell muito simples, que somente através da correspondência de padrões tenta traduzir o código haskell para o inglês. Eu chamo isso
letterator
porque traduz símbolos em letrasfonte
fonte
<*>
,>>
...