https://www.amazon.co.jp/dp/4274067815
これから勉強していく。
まずは第1章を読んだ。が、プログラムなんだか数学なんだか。いきなりリストが出てきているし。qsortの定義は擬似コードなのか実コードなのかわからない。
- 練習問題1
- なんだこれ。外側のdoubleを適用した後2番目のdoubleを適用する、でいいのか?(内側のdoubleから適用するのと、外側のdoubleを適用した後1番目のdoubleを適用するのは、本文中に出てきたので)
- 練習問題2
sum [x] = x + sum [ ] = x
- 練習問題3
qsort larger ++ [x] ++ qsort smaller
ってする。- 練習問題4
- ピボットと同じ値が捨てられてしまう。
qsort [2,2,3,1,1] = qsort [1, 1] ++ [2] ++ qsort [3] = (qsort [ ] ++ [1] ++ qsort [ ]) ++ [2] ++ (qsort [ ] ++ [3] ++ qsort [ ]) = [1, 2, 3]
ってなる。つまり、ピボットとか関係なしに、sortしてuniqしたことになりそうだな。証明は……面倒くさい。