Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if __name__ == '__main__':
- # pythonの論理演算子を使った関数の実装
- _not = lambda p: not p
- _and = lambda p, q: p and q
- _or = lambda p, q: p or q
- _xor = lambda p, q: not(p and q) and (p or q)
- comparator = lambda fn: lambda list: fn(*list)
- bit = [True, False]
- twobit = [
- [False, False]
- , [False, True]
- , [True, False]
- , [True, True]
- ]
- print('not', list(map(_not, bit)))
- print('and', list(map(comparator(_and), twobit)))
- print('or' , list(map(comparator(_or), twobit)))
- print('xor', list(map(comparator(_xor), twobit)))
- # 抽象関数のみで実装
- T = lambda t: lambda f: t
- F = lambda t: lambda f: f
- N = lambda p: p(F)(T)
- AND = lambda p: lambda q: (p)(q)(F)
- OR = lambda p: lambda q: (p)(T)(q)
- XOR = lambda p: lambda q: (p)(N(q))(q)
- NAND= lambda p: lambda q: (p)(N(q))(T)
- NOR = lambda p: lambda q: (p)(F)(N(q))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement