La tua missione, se scegli di accettarlo, è quella di costruire un semplice valutatore della verità per i seguenti operatori logici:
----------------------------------------------------------------------------------
Logical Name | Gate Name | Symbol | Symbol Name | Truth Table
----------------------------------------------------------------------------------
Identity | is | | (none) | 10
Negation | not | ~ | tilde | 01
Conjunction | and | & | ampersand | 1000
Disjunction | or | | | pipe | 1110
Negative Conjunction | nand | ^ | caret | 0111
Joint Denial | nor | v | "vee" | 0001
Exclusive Disjunction | xor | x | "ecks" | 0110
Equivalence | equals/xnor | = | equals | 1001
Implication | implies | > | greater than | 1011
Le tabelle di verità sono nel seguente ordine:
- 1 1
- 1 0
- 0 1
- 0 0
L'input verrà come una semplice stringa di 0, 1 e il simbolo. Puoi accettare l'input come parametro o leggerlo dall'utente su stdin. Ecco alcune coppie di input / output di esempio:
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
L'operatore unario (negazione) apparirà sempre prima del valore booleano, mentre gli operatori binari appariranno sempre tra i due valori booleani. Puoi presumere che tutti gli input saranno validi. Le stringhe sono stringhe ASCII regolari.
Se preferisci, puoi usare T e F piuttosto che 1 e 0. -6 per il conteggio dei personaggi se supporti entrambi.
Questo è code-golf : vince il codice più corto in qualsiasi lingua!
^
il nome del simbolo dovrebbe significare la cura .