0
class Node:
def __init__(self, head, tail):
self.head = head
self.tail = tail
self.isEmpty = False
class Empty:
def __init__(self):
self.isEmpty = True
def fold(ls,f,z):
if ls.isEmpty:
return z
else:
return f(ls.head,fold(ls.tail,f,z))
print(fold(Node(4,Node(3,Node(2,Node(1,e)))),lambda x,y:x+y,0)) ## Sum
print(fold(Node(3,Node(2,Node(1,e))),lambda x,y:x*y,1)) ## Multiply
print(fold(Node(3,Node(2,Node(1,e))),lambda x,y:x-y,0)) ## Minus
람다가있는 빼기 인쇄를 제외한 모든 것이 제대로 작동합니다. 여기서 내가 뭘 잘못하고 있니?목록에있는 파이썬 고차 함수 FOLD :
결과는이 예제 목록에서 "0"(3-2-1)이어야합니다.