回答編集履歴
1
修正
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
ラムダ式の引数の数も渡してあげるようにすると、以下のように書けます。
|
1
|
+
~~ラムダ式の引数の数も渡してあげるようにすると、~~以下のように書けます。
|
2
2
|
```Python
|
3
|
+
|
3
4
|
from itertools import product
|
4
5
|
from pprint import pprint
|
5
6
|
|
@@ -15,15 +16,15 @@
|
|
15
16
|
def EQ(a,b):
|
16
17
|
return a == b
|
17
18
|
|
18
|
-
# n : 引数の数
|
19
|
-
def table(a
|
19
|
+
def table(a):
|
20
|
+
n = a.__code__.co_argcount # 引数の数
|
20
21
|
ls = []
|
21
22
|
for vals in product([True,False], repeat=n):
|
22
23
|
ls.append(list(vals) + [a(*vals)])
|
23
24
|
|
24
25
|
return ls;
|
25
26
|
|
26
|
-
ls = table( lambda a, b: AND(a, OR(a, b))
|
27
|
+
ls = table( lambda a, b: AND(a, OR(a, b)))
|
27
28
|
pprint(ls)
|
28
29
|
"""
|
29
30
|
[[True, True, True],
|
@@ -32,7 +33,7 @@
|
|
32
33
|
[False, False, False]]
|
33
34
|
"""
|
34
35
|
|
35
|
-
ls = table( lambda a, b, c: EQ(AND(a, OR(b, c)), OR(AND(a, b), AND(a, c)))
|
36
|
+
ls = table( lambda a, b, c: EQ(AND(a, OR(b, c)), OR(AND(a, b), AND(a, c))))
|
36
37
|
pprint(ls)
|
37
38
|
"""
|
38
39
|
[[True, True, True, True],
|