Die Intuition eines optionalen Typs wie Maybe Int
ist, dass entweder kein Int vorhanden ist (also vorhanden ist Nothing
) oder dass es ein Int gibt; da ist etwas.
Für mich ist es sinnvoll, den Typkonstruktor für den "negativen" Fall zu nennen Nothing
, da dies genau bedeutet - dass es dort keinen Int
gibt. Aber warum das Wort nur für den Fall verwenden, dass der Schwerpunkt auf etwas liegt, das tatsächlich da ist ?
Für mich hat das Wort "Just" die Konnotation, dass das, was es beschreibt, weniger als die Alternative ist; das Gegenteil von etwas, das tatsächlich da ist; beispielsweise,
A: Machst du heute Abend etwas?
B: Nein; Ich werde einfach bleiben und fernsehen.
A: Hast du die gruseligen Geistergeräusche in deinem Haus untersucht?
B: Ja, es stellte sich heraus, dass es eigentlich nur eine Eule war.
Offensichtlich fehlt mir die Intuition, auf der diese Namenswahl beruhte. Was ist es? Denn für mich bedeutet das Wort Just genau das Gegenteil davon, wie es in dem Maybe
Typ verwendet wird.
Maybe
als Monade verwendet würde, würde er wahrscheinlich verwenden return
und wahrscheinlich so etwas wie mzero
anstelle von Nothing
. Wenn Just
es direkt verwendet wird, Maybe
wird es zu diesem Zeitpunkt normalerweise nicht im monadischen Stil verwendet.
Option
Typ gewesen. Die Designer von Haskell hatten wahrscheinlich das Gefühl, dass foo x = Just x
sie besser "lesen" als foo x = Some x
. In ähnlicher Weise data Maybe a = Just a | Nothing
liest sich die Definition ziemlich gut als " Maybe a
ist entweder Just a
oder es ist Nothing
". Some
liest sich dort einigermaßen gut, None
tut es aber nicht für data Option a = Some a | None
.