Quelles sont les intuitions qui permettent d'appeler le constructeur de Maybe dans Haskell «Just»?

11

L'intuition d'un type en option comme Maybe Intest que soit il n'y a pas d' Int (donc, il est Nothinglà) 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 Intlà. 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 Maybetype.

vijrox
la source
4
Dans ce cas, je pense que la Scala est allée avec le meilleur nom de Some par opposition à None (ne disant pas que c'est l'invention de Scala).
Andres F.
3
@AndresF. Cela remonte au moins à ML qu'Odersky connaissait certainement très bien.
Derek Elkins a quitté le SE
2
@RobertHarvey Si un Haskeller utilisait Maybecomme une monade, ils utiliseraient returnprobablement et probablement quelque chose comme mzeroau lieu de Nothing. Quand Justest utilisé directement, Mayben'est généralement pas utilisé dans un style monadique à ce stade.
Derek Elkins a quitté SE le
2
Le précédent historique aurait été le Optiontype. Les concepteurs de Haskell ont probablement estimé que foo x = Just x"lire" mieux que foo x = Some x. De même, la définition se data Maybe a = Just a | Nothinglit assez bien comme « Maybe aest soit Just aou c'est Nothing». Somelit assez bien là-bas, mais Nonepas pour data Option a = Some a | None.
Derek Elkins a quitté SE le
3
Ils sont toujours en vie. Vous pouvez envoyer des courriels à des gens comme Phil Wadler et Simon Peyton Jones et leur demander. Ou essayez la liste de diffusion Haskell-Cafe.
Derek Elkins a quitté SE le

Réponses:

2

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.

Lloyd Moore
la source