foldr (fn (a,b) => a + b) 0 [1,2,3,4,5] 1 + (2 + (3 + (4 + (5 + 0)))) f(1, f(2, f(3, f(4, f(5,0))))) foldr (fn (a,b) => a * b) 1 [1,2,3,4,5] 1 * (2 * (3 * (4 * (5 * 1)))) foldr (op ::) [] [1,2,3,4,5] foldr (fn (a,b) => a::b) [] [1,2,3,4,5] 1::(2::(3::(4::(5::[])))) ==> [1,2,3,4,5] foldr (fn (a,b) => (a,a)::b) [] [1,2,3,4,5]; (1,1) :: ((2,2) :: ((3,3) :: ((4,4) :: ((5,5) :: [])))) ==> [(1,1),(2,2),(3,3),(4,4),(5,5)]