Questa è in parte genuina curiosità e in parte un controllo sulla mia comprensione. Probabilmente mi manca il punto.
In Haskell, perché una monade usa operazioni chiamate return
o unit
per descrivere l'inserimento di un tipo nel contenitore - sollevandolo nello spazio monadico? Sembra più intuitivo chiamare l'operazione lift
.
In questo momento, nel mio (probabilmente scorretto) porto di monade nel mio progetto, sto usando (pseudocodice):
MyThing.lift(x).bind(f)...
anziché
MyThing.unit(x).bind(f)...
perché è più intuitivo per me pensare di sollevare x nello spazio monadico.
È sbagliato? Continuo a essere bruciato dal non pensare in modo astratto abbastanza, e ho il sospetto che sia il caso di nuovo.