Twoim zadaniem, jeśli zdecydujesz się to zaakceptować, jest zbudowanie prostego narzędzia do oceny prawdy dla następujących operatorów logicznych:
----------------------------------------------------------------------------------
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
Tabele prawdy są w następującej kolejności:
- 1 1
- 1 0
- 0 1
- 0 0
Dane wejściowe będą miały postać prostego ciągu 0, 1 i symbolu. Możesz zaakceptować dane wejściowe jako parametr lub odczytać je od użytkownika na standardowym wejściu. Oto kilka przykładowych par wejścia / wyjścia:
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
Operator jednoargumentowy (negacja) zawsze pojawi się przed wartością logiczną, podczas gdy operatory binarne zawsze pojawią się między dwiema wartościami logicznymi. Możesz założyć, że wszystkie dane wejściowe będą prawidłowe. Ciągi są zwykłymi ciągami ASCII.
Jeśli wolisz, możesz użyć T i F zamiast 1 i 0. -6 do liczby postaci, jeśli obsługujesz oba.
To jest golf-golf: wygrywa najkrótszy kod w dowolnym języku!
^
nazwa symbolu powinna oznaczać karetkę .