L'intuizione di tipo opzionale come Maybe Int
è che o non v'è alcuna Int (quindi, c'è Nothing
lì) o che vi sia qualche Int; c'è qualcosa lì.
Per me ha senso che chiamiamo il costruttore di tipo per il caso "negativo" Nothing
, dal momento che significa esattamente questo - che non Int
c'è. Ma perché usare la parola Solo nel caso in cui l'enfasi è su qualcosa di davvero essere lì ?
Per me, la parola "Just" porta la connotazione secondo cui la cosa che sta descrivendo è inferiore all'alternativa; l'opposto di qualcosa che si trova effettivamente lì; per esempio,
A: Stasera farai qualcosa?
B: No; Starò solo a guardare la TV.
A: Hai indagato sui suoni inquietanti del fantasma intorno a casa tua?
B: sì, si scopre che in realtà era solo un gufo.
Chiaramente mi manca l'intuizione su cui si basava questa scelta di denominazione. Che cos'è? Perché per me la parola significa solo l'opposto di come viene usata nel Maybe
tipo.
Maybe
una monade, probabilmente userebbe return
e probabilmente qualcosa di simile mzero
invece di Nothing
. Quando Just
viene usato direttamente, di solito Maybe
non viene utilizzato in stile monadico a quel punto.
Option
tipo. I progettisti di Haskell probabilmente hanno ritenuto che foo x = Just x
"leggere" meglio di foo x = Some x
. Allo stesso modo, la definizione data Maybe a = Just a | Nothing
legge abbastanza bene come " Maybe a
è uno Just a
o è Nothing
". Some
legge ragionevolmente bene lì, ma None
non per data Option a = Some a | None
.