teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2019/08/29 03:56

投稿

8524ba23
8524ba23

スコア38352

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, n):
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)), 2)
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))), 3)
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],