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íareturn
y probablemente algo así enmzero
lugar deNothing
. CuandoJust
se usa directamente, generalmenteMaybe
no se usa en estilo monádico en ese punto.Option
tipo. Los diseñadores de Haskell probablemente sintieron quefoo x = Just x
"leer" mejor quefoo x = Some x
. Del mismo modo, la definición sedata Maybe a = Just a | Nothing
lee bastante bien como "Maybe a
es o esJust a
o esNothing
".Some
lee razonablemente bien allí, peroNone
no lo hacedata Option a = Some a | None
.Respuestas:
Esto ha sido explicado en el pasado por Simon Peyton Jones. Implica que nada puede ser el valor o 'solo' un único valor de otro tipo. Hay 'solo' otra cosa que se puede devolver como un valor, o nada.
fuente