haskell

lambda覚えたら…

どうもRubyのirbでゴニョゴニョやるくせがあるせいか、Haskellのghciにも関数の定義が出来ることを期待してしまう。*1ghciで出来なかったのでしょうがなく今まではファイルを作ってゴニョゴニョやっていたけど、ふつける8章の無名関数を見ながらためしにghci…

ふつけるが急に難しくなる件

折を見てちょくちょく読み進めてはいるのだけど、どうも部分適用・型クラス辺りから急に難しくなる。やっぱりしっかりコード入力したりしながらじゃないと頭入ってこないな。ここはさらっと読んでしまって、第三部を写経してから戻ってくるという手もあるな…

printとputStrの違い

putStrは引数がStringである必要がある。printは型を文字列に自動変換してくれる。 出力先を指定するときはhPutStrを使う。いまいちputStrを使わなきゃいけないというシチュエーションがよく分からないけど、printを使うと改行の部分がどうも改行されないよ…

lines関数の罠

hrefより 全てのシステムにおいて行末コードは \n であり、\r\n および \r は行末とは見なされない。 だそうです。罠というほどでもないけど意識しておいた方が良さげ。

tail

tailを書くのが流行ってるみたいなのでやってみた。 main = do cs <- getContents putStr $ lastNlines 10 cs lastNlines :: Int -> String -> String lastNlines n cs = unlines $ takeLast n $ lines cs takeLast :: Int -> [String] -> [String] takeLast…

hrefのREADME.ja

例によって自分もふつはすをやってるわけなんですが、Haskellの日本語を便利にコマンドラインから検索できちゃうhrefのREADME.jaにちょっと気になる点が。 データベースの準備 - [各種 UNIX の場合] (sh 系) $ HREF_DATADIR=/usr/share/href $ export HREF_D…