プログラミングHaskellを買った

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したことになりそうだな。証明は……面倒くさい。