Pfds 9 2_2
- 2. RList in 9.2.1
cons, head, tail がO(log n)
9.2.2では
headをO(1)にする
2012年9月23日日曜日
- 4. Zero | One構造をOne | Two構造に変えればいい
headで取り出す対象を常に保持している
fun head (One Leaf x) :: _) = x
| head (Two (Leaf x, Leaf y) :: _) = x
2012年9月23日日曜日
- 5. []
1 : []
Zero | One構造
0 : 1 : []
1 : 1 : [] (2^0 + 2^1 = 3)
0 : 0 : 1 : []
1 : 0 : 1 : []
0 : 1 : 1 : []
1 : 1 : 1 : [] (2^0 + 2^1 + 2^2 = 7)
0 : 0 : 0 : 1 : []
1 : 0 : 0 : 1 : []
1 : 1 : 0 : 1 : []
....
1 : 1 : 1 : 1 : [] (2^0 + 2^1 + 2^2 + 2^3 = 15)
0 : 0 : 0 : 0 : 1 : [] (2^4 = 16)
2012年9月23日日曜日
- 6. []
One | Two構造
1 : [] (1)
2 : [] (2^1 = 2)
1 : 1 : []
2 : 1 : []
1 : 2 : []
2 : 2 : [] (2^2 + 2^1 = 6)
1 : 1 : 1 : []
2 : 1 : 1 : []
...
2 : 2 : 2 : [] (2^3 + 2^2 + 2^1 = 14)
1 : 1 : 1 : 1 : []
2 : 1 : 1 : 1 : [] (2^4 = 16)
2012年9月23日日曜日