Estoy leyendo Learn You a Haskell for Great Good , y nunca sé cómo pronunciar los operadores de Haskell. ¿Tienen nombres "reales"? ?
Por ejemplo, ¿cómo se lee en voz alta una expresión como esta?
Just (+3) <*> Just 9
Sé que eso >>=
es "obligatorio", pero ¿qué pasa con los demás? Como Google no tiene en cuenta caracteres no alfanuméricos, es difícil hacer una búsqueda eficiente ...
Me doy cuenta de que puede crear sus propios operadores, por lo que, por supuesto, no todos los operadores pueden tener nombres, pero espero que los comunes (por ejemplo, los definidos en Applicative
o Monad
) deben tener nombres ...
<*>
pronuncia?" ? Incluso si no lo es, probablemente valga la pena consultar sus respuestas.()
se pronuncia unidad Una vez me encontré atrapado frente a una audiencia de un par de cientos de programadores funcionales que no sabían cómo pronunciar eso en mi diapositiva.Respuestas:
Así es como los pronuncio:
fuente
(.)
es "componer".(.)
comoof
y($)
comoapplied to
:f . g . h $ x
se leef of g of h applied to x
. ¡Pero entiendo la divergencia en este punto de vista!(.)
como "después" es más sensato. La composición se puede denotar en dos direcciones, y llamarla "después" explica inmediatamente cómo funciona también.const 42 . fix id
, ¿podemos decir realmente queconst 42
viene "después" de un bucle infinito?++
"append" en lugar deconcat
, yaconcat
que ya es una cosa en Haskell y su utilidad es muy diferente.fuente
<*
? ¿Se usa tan raramente que no tiene un nombre común?Mis favoritos personales son "pez izquierdo" (<= <) y "pez derecho" (> =>) . Que son solo la composición izquierda y derecha de Kleisli de operadores de mónadas. Componer a pescado, componer!
fuente
Me tomé la libertad de reunir las respuestas en un programa haskell muy simple, que solo a través de la coincidencia de patrones intenta traducir el código haskell al inglés. Lo llamo
letterator
porque traduce símbolos en letrasfuente
fuente
<*>
,>>
...