http://www.rubycolor.org/maki/d/200302b.html#19_t1
あ、高橋さん版の head が。 Haskell の遅延評価ってカッコいいですよね。 hGetContents とかも、ファイルの中身を全部読んでいるように見せかけて、 実はアクセスしたときに初めて読んでくれるという……。 mmap とちょっと似てるかな。
あ、コンパイルしたら端末からの入力でも動きました。 ということは runhugs が原因なのか。なんでだろうなあ。 もしかして raw モードになってるとかそういう話か? (それはそれで嫌だな)
うっ……なんか名前からしてヤヴァそうな…… ^^;;;
そういえば Gentle ... にもちょこっとだけ 存在がほのめかしてありましたね。 デバッグ用として、ルール外で IO する裏技が。
をを! 山下さん版 tail カコイイ! コードのコア部分はこんなかんじ。
doTail :: IO String -> IO () doTail ios = do { cs <- ios ; putStr $ unlines $ reverse $ take 10 $ reverse $ lines cs }
文法まわりは設定次第で他にもいろいろ書きかたがあるらしい。
うーむ、慣れるとずいぶんきれいに書けるんだなあ。 というより今回はアルゴリズムの発想が悪かったか。 全部オンメモリにしない点に無駄にこだわりすぎた。
ちなみに
... $ take 10 $ ...
というふうに関数を 1 引数分だけ適用できるとこもなかなか凄い。 第 2 引数だけ後から与えて返り値を取れる。
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
拙のtailコードなども御観賞ください(って、そんな大したもんじゃないけど、らしくは書いてます)。http://www.sampou.org/nobsun/journal/?20030220
出たみたい。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4252-4.html
#parameterとargumentの違いをこの本で知ったというのは内緒だ
http://www.loveruby.net/~aamine/ja/tdiary/20030221.html#p04
の</a>がおかしなことになってますよ.
ありがとうございます。今直しました。
どうやらプリプロセッサが狂ってたみたいです。