Якщо ви вирішите прийняти це, ваша місія полягає в тому, щоб побудувати простий оцінювач істини для наступних логічних операторів:
----------------------------------------------------------------------------------
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
Таблиці істини в такому порядку:
- 1 1
- 1 0
- 0 1
- 0 0
Введення буде простим рядком 0, 1 та символом. Ви можете прийняти введення як параметр або прочитати його від користувача на stdin. Ось кілька зразків пар введення / виводу:
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
Одинарний оператор (заперечення) завжди з'явиться перед булевим значенням, тоді як двійкові оператори завжди з'являться між двома булевими значеннями. Ви можете припустити, що всі дані будуть дійсними. Струни - це звичайні рядки ASCII.
Якщо ви віддаєте перевагу, ви можете використовувати T і F, а не 1 і 0. -6 для підрахунку символів, якщо ви підтримуєте обидва.
Це є код-гольф: найкоротший код на будь-якій мові виграє!
^
, що назва символу повинна говорити про карету .