L'intuition d'un type en option comme Maybe Int
est que soit il n'y a pas d' Int (donc, il est Nothing
là) ou qu'il ya un certain Int; il y a quelque chose.
Il est logique pour moi que nous appelions le constructeur de type pour le cas "négatif" Nothing
, car cela signifie exactement cela - qu'il n'y a pas Int
là. Mais pourquoi utiliser le mot Juste dans le cas où l'accent est mis sur quelque chose qui existe réellement ?
Pour moi, le mot «juste» porte la connotation que la chose qu'il décrit est moins que l'alternative; le contraire de quelque chose qui est réellement là; par exemple,
A: Tu fais quelque chose ce soir?
B: Non; Je vais juste rester et regarder la télé.
A: Avez-vous enquêté sur les sons fantômes effrayants autour de votre maison?
B: oui, il s'avère que ce n'était en fait qu'un hibou.
De toute évidence, je manque de l'intuition sur laquelle ce choix de nom était basé. Qu'Est-ce que c'est? Parce que pour moi, le mot signifie juste le contraire de la façon dont il est utilisé dans le Maybe
type.
Maybe
comme une monade, ils utiliseraientreturn
probablement et probablement quelque chose commemzero
au lieu deNothing
. QuandJust
est utilisé directement,Maybe
n'est généralement pas utilisé dans un style monadique à ce stade.Option
type. Les concepteurs de Haskell ont probablement estimé quefoo x = Just x
"lire" mieux quefoo x = Some x
. De même, la définition sedata Maybe a = Just a | Nothing
lit assez bien comme «Maybe a
est soitJust a
ou c'estNothing
».Some
lit assez bien là-bas, maisNone
pas pourdata Option a = Some a | None
.Réponses:
Cela a été expliqué dans le passé par Simon Peyton Jones. Cela implique que Nothing peut être la valeur ou «juste» une seule autre valeur de type. Il y a «juste» une autre chose qui peut être retournée en tant que valeur, ou rien.
la source