ringtaroのHaskell日記

 | 

2010年01月26日(火)

プログラミングHaskell第1章練習問題をやったよ。 19:05

1.

  double (double 2)
= double (2 + 2)
= double 2 + double 2
= 4 + 4
= 8

正直何をさせたいのかよくわからなかったが、「どんな順番で計算をやっても結局解答は一緒になるよ」ということを確かめさせる問題だったらしい。


2.

  sum[x]
= x + sum[]
= x + 0
= x

簡単な証明問題ですね。

3.

myproduct [] = 1
myproduct (x:xs) = x * product xs

  product [2,3,4]
= 2 * product [3,4]
= 2 * 3 * product [4]
= 2 * 3 * 4 * product []
= 2 * 3 * 4 * 1
= 24

計算問題。

プログラミングの勉強で計算問題って珍しいよね。

4.

rqsort [] = []
rqsort (x:xs) = rqsort larger ++ [x] ++ rqsort smaller
  where
    smaller = [a | a <- xs, a <= x]
    larger  = [b | b <- xs, b >  x]

qsortのlargerとsmallerを入れ替えればOK。


5.

同地が1つにまとまる。

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

SultanSultan2013/07/27 02:10That's more than sebilnse! That's a great post!

MonyMony2013/07/28 09:19Furrealz? That's <a href="http://cxxyedpxlu.com">marlslouevy</a> good to know.

JordyJordy2013/07/28 17:11You've hit the ball out the park! Inciedrble! http://ihocbuqlc.com [url=http://gnhqrzkf.com]gnhqrzkf[/url] [link=http://sxlswxtrqh.com]sxlswxtrqh[/link]

KimKim2013/07/30 21:21I hate my life but at least this makes it <a href="http://awofnoevyb.com">bealabre.</a>

 |