Durante la creazione di un client per un'API Web in C #, ho riscontrato un problema relativo nullal valore in cui rappresenterebbe due cose diverse:
- niente , ad esempio un
foomay 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 xe M xdovrebbe avere la stessa semantica.
M (M x)e M xdovrebbe avere la stessa semantica". Prendiamo M = Listad 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 xche spiega la relazione tra loro, ma non hanno la stessa semantica "".
null. È un'idea completamente rotta.