タグ

継続に関するyagieyのブックマーク (4)

  • Scheme:使いたい人のための継続入門

    使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fact

    Scheme:使いたい人のための継続入門
    yagiey
    yagiey 2010/05/04
    [call/cc][scheme]
  • Gaucheで継続と例外の実行時間を比較してみた - かきにっき

    継続と例外をそれぞれ大域脱出に使って,実行時間を比較してみた.3回計測して中央値をとった. $ gosh -V Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]まず,最も単純な例. (use srfi-42) (time (do-ec (: i 0 100000) (call/cc (lambda (cont) (cont i))))) (use srfi-42) (time (do-ec (: i 0 100000) (guard (e (else e)) (raise i)))) $ gosh callcc.scm ;(time (do-ec (: i 0 100000) (call/cc (lambda (cont) (cont i))))) ; real 0.191 ; user 0.190 ; sys 0.010

    Gaucheで継続と例外の実行時間を比較してみた - かきにっき
    yagiey
    yagiey 2010/02/23
    [call/cc][scheme]
  • Schemeを作ろう 第3回 継続

    Last update 1999/08/07 Scheme処理系の制作 第3回 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 継続とは 今回は、前回「めんどくせえ」と放棄した継続の概念の説明および実装レポートについて書きたいと思います。 あれからまたインターネット漁ってみたのですが、やっぱりどうも日語リソースはないらしいので、自力で書いてみることにします(schemeの研究してる学者・学生なんて掃いて捨てるほどいるだろうに……) さて、こんなC言語のコードがあるとします。 void foo(void){ bar(baz( )); bar(0); } C言語を学んだ皆さんなら、このコードがどういう順番に実行されるのかわかりますよね。説明されるまでもなく、 baz( )を呼び出す その戻り値を引数としてbarを呼び出す 0を引数として呼び出す fooの呼び出しもとに帰

  • Practical Scheme

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

    Practical Scheme
    yagiey
    yagiey 2007/09/30
    分かりやすい継続の解説...らしい。いつか読み直す。
  • 1