@@ -40,21 +40,47 @@ def recursive_imply_list(input_list: list[int]) -> int:
4040 ( (a -> b) -> c ) -> d ...
4141
4242 >>> recursive_imply_list([])
43- 1
43+ Traceback (most recent call last):
44+ ...
45+ ValueError: Input list must contain at least two elements
4446 >>> recursive_imply_list([0])
45- 0
47+ Traceback (most recent call last):
48+ ...
49+ ValueError: Input list must contain at least two elements
4650 >>> recursive_imply_list([1])
51+ Traceback (most recent call last):
52+ ...
53+ ValueError: Input list must contain at least two elements
54+ >>> recursive_imply_list([0, 0])
55+ 1
56+ >>> recursive_imply_list([0, 1])
57+ 1
58+ >>> recursive_imply_list([1, 0])
59+ 0
60+ >>> recursive_imply_list([1, 1])
61+ 1
62+ >>> recursive_imply_list([0, 0, 0])
63+ 0
64+ >>> recursive_imply_list([0, 0, 1])
65+ 1
66+ >>> recursive_imply_list([0, 1, 0])
67+ 0
68+ >>> recursive_imply_list([0, 1, 1])
69+ 1
70+ >>> recursive_imply_list([1, 0, 0])
4771 1
4872 >>> recursive_imply_list([1, 0, 1])
4973 1
5074 >>> recursive_imply_list([1, 1, 0])
5175 0
76+ >>> recursive_imply_list([1, 1, 1])
77+ 1
5278 """
53- if not input_list :
54- return 1
55- if len (input_list ) == 1 :
56- return input_list [0 ]
79+ if len (input_list ) < 2 :
80+ raise ValueError ('Input list must contain at least two elements' )
5781 first_implication = imply_gate (input_list [0 ], input_list [1 ])
82+ if len (input_list ) == 2 :
83+ return first_implication
5884 new_list = [first_implication , * input_list [2 :]]
5985 return recursive_imply_list (new_list )
6086
0 commit comments