La intuición de un tipo opcional como Maybe Int
es que o no hay Int (por lo tanto, hay Nothing
allí) o que hay algo de Int; hay algo ahí
Para mí tiene sentido que llamemos al constructor de tipos para el caso "negativo" Nothing
, ya que significa exactamente eso: que no hay Int
allí. Pero, ¿por qué usar la palabra solo en el caso en que el énfasis está en algo que realmente está allí ?
Para mí, la palabra "Justo" lleva la connotación de que lo que describe es menos que la alternativa; lo contrario de algo que realmente está allí; por ejemplo,
A: ¿Estás haciendo algo esta noche?
B: no; Estoy simplemente va a quedarse en casa y ver la televisión.
A: ¿Investigaste los espeluznantes sonidos de fantasmas alrededor de tu casa?
B: sí, resulta que en realidad era solo un búho.
Claramente, me falta cualquier intuición en la que se basara esta elección de nombres. ¿Qué es? Porque para mí, la palabra Just significa lo contrario de cómo se usa en el Maybe
tipo.
Maybe
como mónada, probablemente usaría return
y probablemente algo así en mzero
lugar de Nothing
. Cuando Just
se usa directamente, generalmente Maybe
no se usa en estilo monádico en ese punto.
Option
tipo. Los diseñadores de Haskell probablemente sintieron que foo x = Just x
"leer" mejor que foo x = Some x
. Del mismo modo, la definición se data Maybe a = Just a | Nothing
lee bastante bien como " Maybe a
es o es Just a
o es Nothing
". Some
lee razonablemente bien allí, pero None
no lo hace data Option a = Some a | None
.