¿Cuáles son algunas intuiciones que admiten llamar al constructor Quizás en Haskell "Just"?

11

La intuición de un tipo opcional como Maybe Intes que o no hay Int (por lo tanto, hay Nothingallí) 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 Intallí. 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 Maybetipo.

vijrox
fuente
44
En este caso, creo que Scala fue con el mejor nombre de Some en lugar de None (sin decir que es un invento de Scala).
Andres F.
3
@AndresF. Se remonta al menos a ML con el que Odersky definitivamente estaba muy familiarizado.
Derek Elkins dejó SE
2
@RobertHarvey Si un Haskeller estuviera usando Maybecomo mónada, probablemente usaría returny probablemente algo así en mzerolugar de Nothing. Cuando Justse usa directamente, generalmente Maybeno se usa en estilo monádico en ese punto.
Derek Elkins dejó SE
2
El precedente histórico habría sido el Optiontipo. 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 | Nothinglee bastante bien como " Maybe aes o es Just ao es Nothing". Somelee razonablemente bien allí, pero Noneno lo hace data Option a = Some a | None.
Derek Elkins dejó SE
3
Todavía están vivos Puede enviar correos electrónicos a personas como Phil Wadler y Simon Peyton Jones y preguntarles. O pruebe la lista de correo de Haskell-Cafe.
Derek Elkins dejó SE

Respuestas:

2

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.

Lloyd Moore
fuente