プログラミング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 の意味も良くわからねーな。そのうち明らかになるといいなぁ。