Misi Anda, jika Anda memilih untuk menerimanya, adalah untuk membangun evaluator kebenaran sederhana untuk operator logis berikut:
----------------------------------------------------------------------------------
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
Tabel kebenaran berada dalam urutan sebagai berikut:
- 1 1
- 1 0
- 0 1
- 0 0
Input akan muncul sebagai string sederhana 0, 1, dan simbol. Anda dapat menerima input sebagai parameter atau membacanya dari pengguna di stdin. Berikut adalah beberapa pasangan input / output sampel:
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
Operator unary (negasi) akan selalu muncul sebelum nilai boolean, sedangkan operator biner akan selalu muncul di antara dua nilai boolean. Anda dapat mengasumsikan bahwa semua input akan valid. String adalah string ASCII biasa.
Jika Anda suka, Anda dapat menggunakan T dan F daripada 1 dan 0. -6 untuk jumlah karakter Anda jika Anda mendukung keduanya.
Ini adalah kode-golf : kode terpendek dalam bahasa apa pun menang!
^
nama simbol harus diucapkan caret .