tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

プログラミングHaskell一人読書会 (第2章)

うーん、イマイチ理解できて無い気がしますが、とりあえず「プログラミング Haskell」を第2章まで読んでしまいました。(Real World Haskell はかなりきつかったので入門書を買ったのです)。

演習問題の回答が本に無かったので、ここにさらしておきます。読み終えるころには、もっとエレガントな解を持っているかもしれないし、無いかもしれない。。。

{-
1. Perl とかと大体一緒で直感に反しないので省略
2. GHCI でそのままぶっ叩けばいい
-}

{-
 3. 
 N は小文字。a と xs の字下げが揃ってない、で、もう一つはなんだろ?????
 つーかこの関数が何をしたいのかがさっぱり分からんw
-}
n = a `div` length xs
    where
      a  = 10
      xs = [1,2,3,4,5]

{- 
 4.
 last だと GHCI はダメだった。Prelude にあるっぽい
 なんか括弧のつきかたが気に入らないけど、こうするしかないっぽい感じ。
-}
mylast xs = xs !! ((length xs) -1)
mylast2 xs = head(reverse xs)

{-
 5.
 GHCI には init もあるっぽい。
-}
myinit xs = take ((length xs) -1) xs
myinit2 xs = reverse (tail (reverse xs))

括弧の使い方がおかしいのか、関数の呼び方が悪いのか、なんか見た目が気持ち悪いなぁ。あと、where の意味も良くわからねーな。そのうち明らかになるといいなぁ。