monad example haskell terminology monads j

example - ¿El término "monádico" en J tiene algo que ver con su uso de Haskell?



haskell>=> (4)

(Lo siento, soy estúpido y sin educación, por lo que esta es probablemente una pregunta ridícula).

Acabo de empezar a mirar a J, y usan los términos "monádico" y "diádico" para lo que a mí me parecen operadores únicos y binarios. ¿Por qué se hace esto y cómo se relaciona con el otro lugar donde escuché el término (Haskell)? Supongo que son homónimos no relacionados, pero no estoy seguro.


No están relacionados, excepto cuando ambos se derivan de la raíz griega para "uno". Monádico y diádico son ciertamente términos para funciones unarias y binarias. Específicamente, son los equivalentes derivados de los griegos: usar -adic en lugar de -ary . Considere la palabra "tríada", que también es de origen griego.

La mónada en el sentido que Haskell usa tiene una etimología poco clara pero probablemente se deriva de "monoide".

Sin embargo, yo recomendaría seguir con los términos "n-arios" derivados de América en Haskell. Técnicamente, todas las funciones en Haskell tienen un argumento debido al curry, por lo que el uso de la forma derivada de Grecia podría producir cantidades arbitrarias de confusión.


No están relacionados; CA McCann señala las etimologías de ambos.

En cualquier caso, el uso de Haskell, por supuesto, proviene de la teoría de categorías, y se piensa que es una acuñación independiente no relacionada con los otros sentidos de la mónada .

De hecho, el sentido J de "monádico" se remonta a APL, ¡que es anterior a Haskell por un cuarto de siglo! Creo que también podría ser anterior al uso de la teoría de categorías del término.


No, el uso de J no tiene nada que ver con el término de Haskell. Las funciones monádicas y diádicas son funciones de uno y dos argumentos, respectivamente.

Los términos J se originan en APL, que es un poco más antiguo que Haskell, pero rara vez los he visto usados ​​de esta manera fuera de la familia APL.

Un ejemplo del uso de estos términos en un contexto no APL es el libro Clean Code , que en el capítulo sobre funciones habla de las funciones niladic, monádica y diádica.


Adicity (o adinity ) es una alternativa a arity , usando raíces numéricas griegas en lugar de latín:

  • niladic / medadic = nullary

  • monádico = unario

  • diádico = binario

  • triádico = ternario

  • tetradic = cuaternario

  • ...

Los diversos significados de mónada en filosofía, religión, biología, teoría de categorías y programación funcional se derivan por separado de su denotación literal de una "unidad". El término Haskell probablemente se deriva de monoid , una estructura algebraica equivalente a una mónada aditiva.