teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追加

2018/10/17 04:09

投稿

mightyMask
mightyMask

スコア143

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
+ となります。