あどけない話

Internet technologies

2013-02-01から1ヶ月間の記事一覧

PFAD(1): The smallest free number

与えられた自然数リストの中に存在しない最小の自然数を求める問題。(ここでの自然数は 0 から始まる。)素朴には、以下のように実装できる。 minfree :: [Int] -> Int minfree xs = head $ [0..] \\ xs (\\) :: Eq a => [a] -> [a] -> [a] us \\ vs = filter…

GHC でスタックトレース

これまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。 なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中…

tailをなくしたフィボナッチ数列

以下の内容は比較的どうでもいいことなので、暇な人だけ読んで下さい。Haskell では、head と tail という関数は使うなと言われる。なぜなら、引数が空リストのときにエラーを返すからである。純粋な関数は全域関数であるべきだが、head と tail は div など…