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 truefalse.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top