タグ

2007年9月16日のブックマーク (2件)

  • Practical Scheme

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐

    Practical Scheme
  • なんでも継続、Perl で。 : torus solutions!

    最近よくコンティニュエーション・パッシングだとか、 継続ベースの○○とか、 そういう話題を耳にします。 でも継続っていうのが何なのか良く分からなかったので、 お正月休みに Shiro Kawaiさんの なんでも継続 を読んでみました。 今までずっと難しいだろうと思って読んでなかったんだけど、 これがまたとても分かりやすくて面白かったので、 途中にあげられていたサンプルコードを Perl でも書いてみました。 普通の再帰形式 Scheme では (define (leaf-count tree) (if (pair? tree) (+ (leaf-count (car tree)) (leaf-count (cdr tree))) 1)) Perl では Perl にはペアがないので、 2 要素の配列でエミュレートすることにします。 それ以外はそのまんまです。 sub leaf_count