回答編集履歴
1
追加
test
CHANGED
@@ -1 +1,27 @@
|
|
1
1
|
「(:)」は結合則を満たしていて、結合則を満たす演算に対しての「foldl」と[foldr」は同じ挙動です。
|
2
|
+
|
3
|
+
(厳密には、第二引数であるアキュムレータが単位元であるならという但し書きが必要ですが)
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
どこに解釈の間違いがあるかというと、
|
8
|
+
|
9
|
+
(:) 1 [] ... = [1]
|
10
|
+
|
11
|
+
(:) 2 [1] ... = [2,1]
|
12
|
+
|
13
|
+
(:) 3 [2,1] ... = [3,2,1]
|
14
|
+
|
15
|
+
(:) 4 [3,2,1] ... = [4,3,2,1]
|
16
|
+
|
17
|
+
となるのではなく、
|
18
|
+
|
19
|
+
(:) 4 [] ... = [4]
|
20
|
+
|
21
|
+
(:) 3 [4] ... = [3,4]
|
22
|
+
|
23
|
+
(:) 2 [3,4] ... = [2,3,4]
|
24
|
+
|
25
|
+
(:) 1 [2,3,4] ... = [1,2,3,4]
|
26
|
+
|
27
|
+
となります。
|