2011-01-01から1年間の記事一覧
前の記事で、Haskellでfoldlを使った場合の動作について書きました。 Haskellの評価戦略とfoldl/foldr (1) Haskellの評価戦略とfoldl/foldr (2) ここで、Haskellでfoldlを実際に使ってみて動作を確認してみようと思います。 {- fold1.hs -} import Data.List…
前の記事 d:id:linglang:20110909:1315561320 で、 foldl (<+>) (z<+>a0) (a1:[a2,a3,a4,a5,a6]) という式を評価するとき、2通りの簡約(計算)順序があることを示しました。 foldl (<+>) b0 (a1:[a2,a3,a4,a5,a6]) {- 内部簡約 -} foldl (<+>) ((z<+>a0)<+>a1…
関数型言語などで再帰を使ってプログラムを書く場合、 末尾再帰はループに最適化されるのでメモリ消費量が少なくなる と、一般には言われます。 が、これは評価戦略によっては成り立たなくなります。 foldlとfoldr リストの内容をある演算子によって畳み込む…
syslog に色をつけてみるテスト。 tail -f /var/log/syslog | ruby log_color.rb とかやると適当に色つきで表示される。 #!/usr/bin/ruby1.8 -Ku ESC_DEFAULT = "\x1b[39m" ESC_RED = "\x1b[31m" ESC_YELLOW = "\x1b[33m" ESC_BLUE = "\x1b[34m" ESC_CYAN = …
無限大にもいろいろな大きさの違いがある!?! という記事を見て、自然数全体の集合と、偶数全体の集合の大きさについて考えてみた。 上記記事には、 無限大と無限大の個数を比べるのは無意味のようでもあるが、しかし、私たちは、直感的に自然数の個数の方…