Costrutto condizionale per un tipo di dati di Kleenean
https://softwareengineering.stackexchange.com/questions/199065
-
06-11-2019 - |
Domanda
Stavo pensando a un ipotetico linguaggio di programmazione con a kleenean
Tipo di dati che implementerebbe Kleene Logica a tre valori. Per riassumere, è un'estensione del tipo di dati booleani con le tre costanti true
, false
e unknown
dove unknown
significa che il valore è neanche true
o false
, ma non sappiamo quale.
Le tabelle della verità per un tipo di kleene sono ben note e la logica è abbastanza facile da capire. Tuttavia, mi chiedevo come si avrebbe progettato un costrutto condizionale per prendere in considerazione questo unknown
valore.
Un fondamento if-then-else
Il costrutto condizionale è quasi sempre il seguente:
if (boolean condition) then
condition is true, do something
else
condition is false, do some other thing
end
Tuttavia, ho problemi a vedere che kleenean if
Il costrutto sembrerebbe. Come potremmo interpretare il unknown
costante? Tecnicamente parlando, potrebbe soddisfare il true
condizione e il false
condizione poiché è uno di questi due. Tuttavia, non possiamo farcela abbinare nessuno di quelli poiché potrebbe essere l'altro, non lo è proprio true
né false
.
C'è un modo ben noto per implementare un tale costrutto?
MODIFICARE: Per specificare un po ', preferisco qualcosa di diverso dal modo boost::tribool
funziona o da un semplice switch
Come se fosse un enum. Le risposte sulla sovrapposizione quantistica e sulla semantica sono benvenute.
Nessuna soluzione corretta