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