タグ

ブックマーク / shugo.net (3)

  • Rubyで遅延評価 - delay, force, lazy - Journal InTime(2012-04-11)

    _ Rubyで遅延評価 - delay, force, lazy 正格評価の言語で明示的に遅延評価を行う方法として、Schemeのdelay/forceがある。 Rubyで実装するとこんな感じ。 class Promise NULL = Object.new def initialize(&block) @value = NULL @block = block end def self.delay(&block) new(&block) end def force if @value == NULL @value = @block.call else @value end end end count = 0 x = Promise.delay { count += 1; 1 + 2 } p x.force #=> 3 p x.force #=> 3 p count #=> 1 メモ化してく

  • 関西オープンソース2005発表, 非決定性計算, KOF宴会 - Journal InTime(2005-10-29)

    _ 関西オープンソース2005発表 発表してきた。 スライド ちょっと会場入りが遅れたせいもあり、進行がぐだぐだになってしまって、 申し訳なかったです。 Tags: ximapd Rast _ 非決定性計算 今回いちばん面白かったのが、Haskell同好会のセッション。 吉田さんのプレゼンで非決定性計算の話が出て来たのだが、 Wikiでも紹介されていたようだ。 「他の言語じゃこんなことできないでしょ」という話だったが、 実はRubyConf2005のChad FowlerとJim Weirichのチュートリアルでも同じようなデモをやっていた。 それを使って書くと、 require "amb" A = Amb.new baker = A.choose(1, 2, 3, 4, 5) cooper = A.choose(1, 2, 3, 4, 5) fletcher = A.choose(1,

  • 雑誌に書いた記事

    Last modified: Tue May 18 18:21:41 JST 2004 出版社さんのご厚意により、雑誌に書いた記事を公開させていた だいています。 基的に校正前の原稿なので、実際に出版された雑誌の記事とは 異なるところがありますが、技術的な誤りについては訂正してあ るつもりです。 目次 Software Design 技術評論社 2001年3月号 「mod_rubyによるWebシステム構築」 (リスト) WEB+DB PRESS 技術評論社 Vol.2「RubyによるWebアプリケーション構築術」 (リスト) C MAGAZINE ソフトバンクパブリッシング 2001年5月号「第1回 拡張ライブラリの作成(1)」 (リスト) 2001年6月号「第2回 拡張ライブラリの作成(2)」 (リスト) 2001年7月号「第3回 Rubyインタプリタの組み込み(1)」 (リスト) 2

  • 1