Durante la creazione di un client per un'API Web in C #, ho riscontrato un problema relativo null
al valore in cui rappresenterebbe due cose diverse:
- niente , ad esempio un
foo
may o potrebbe non avere unbar
- sconosciuto : per impostazione predefinita la risposta API include solo un sottoinsieme di proprietà, è necessario indicare quali proprietà aggiuntive si desidera. Così sconosciuto significa che la proprietà non è stata richiesta dall'API.
Dopo alcune ricerche ho scoperto il tipo Maybe (o Opzione), come viene utilizzato nei linguaggi funzionali e come "risolve" i problemi di dereferenziazione nulla costringendo l'utente a pensare alla possibile assenza di un valore. Tuttavia, tutte le risorse che ho incontrato parlavano di sostituire null con Forse . Ho trovato alcune menzioni della logica a tre valori , ma non la capisco del tutto e la maggior parte delle volte la sua menzione era nel contesto di "è una brutta cosa".
Ora mi chiedo se abbia senso avere sia il concetto di null che Forse , per rappresentare rispettivamente lo sconosciuto e il nulla . È questa la logica a tre valori di cui ho letto o ha un altro nome? O è il modo previsto per nidificare un Forse in un Forse?
M M x
e M x
dovrebbe avere la stessa semantica.
M (M x)
e M x
dovrebbe avere la stessa semantica". Prendiamo M = List
ad esempio: gli elenchi di elenchi non sono la stessa cosa degli elenchi. Quando M
è una monade, c'è una trasformazione (cioè la moltiplicazione Monade) dal M (M x)
al M x
che spiega la relazione tra loro, ma non hanno la stessa semantica "".
null
. È un'idea completamente rotta.