log.saiias

あてにならない備忘録

プログラミングHaskell練習問題

すこし前から興味があったプログラミングHaskellを購入したので練習問題を解いていこうと思います。
合っているかどうかわからないのであまり参考にならないと思うが晒していこうと思ってます。

1.7練習問題

(1)
double(double 2)
 内側のdoubleを適用
double(2+2)
 doubleの適用
(2+2)+(2+2)
 最初の()を適用
4+(2+2)
 後ろの()を適用
4+4
8
(2)
sum = 0
sum(x:xs)=x+sum xs
であるので
sum[x]=x+sum
      =x+0
      =0
(3)
product[] = 1
product(x:xs) = x * (product xs)

product[2,3,4]=24の証明は省略

(4)
qsort'=
qsort'(x:xs) = qsort' larger ++ [x] ++ qsort' smaller
      where
        smaller = [a|a<-xs,x>=a]
	larger  = [b|b<-xs,x
(5)
[1,2,3]

まだ第一章なのでそんなに難しいとしいところはなかった。
このあとの章もこんな調子でやっていけるといいなぁ