4. unary right fold(단항 오른쪽 접기)
(E op ...) -> (E1 op (... op (EN-1 op EN)))
입력 : fun(1, 2, 3, 4, 5), 표현식 : t + …
(1 + (2 + (3 + (4 + 5)))
unary left fold(단항 왼쪽 접기)
(... op E) -> (((E1 op E2) op ...) op EN)
입력 : fun(1, 2, 3, 4, 5), 표현식 : … + t
((((1 + 2) + 3) +4) + 5)
7. binary right fold(이항 오른쪽 접기)
(E op ... op I) -> (E1 op (... op (EN−1 op (EN op I))))
func1(3, 5, 7, 9)
->(3 + (5 + (7 + (9 + 1/*init*/))))
binary left fold(이항 왼쪽 접기)
(I op ... op E) -> ((((I op E1) op E2) op ...) op EN)
func2(3, 5, 7, 9)
->((((1/*init*/ + 3) + 5) + 7) + 9)