Closed zlqhem closed 9 months ago
https://play.haskell.org/saved/Qoxq6EOe
처음 작성했던 foldr 구현입니다
foldr_v0 f acc [] = acc foldr_v0 f acc (x:xs) = foldr_v0 f (f x acc) xs
위의 구현은 아래 예제에서 19.0 이 나오는 반면 foldr 은 20.0 이 나옵니다.
foldr (\x y -> (x+y)/2) 54 [10,6] --20.0 foldr_v0 (\x y -> (x+y)/2) 54 [10,6] --19.0
foldr 의 evaluation 은 과정은 아래와 같습니다
foldr f 54 [10,6] (10 + (foldr f 54 [6])) / 2 (10 + ((6 + 54) / 2) / 2 = (10 + 60 / 2) / 2 = (10 + 30) / 2 = 20
자문자답으로 이슈 만들었습니다..
https://play.haskell.org/saved/Qoxq6EOe
처음 작성했던 foldr 구현입니다
위의 구현은 아래 예제에서 19.0 이 나오는 반면 foldr 은 20.0 이 나옵니다.
foldr 의 evaluation 은 과정은 아래와 같습니다