タグ

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

  • 継続 - Wikipedia

    のようになる[3]。この式はすなわち、値 v を引数に取り、それに4を足した値を返す関数である。実際、この後 (+ 1 2) の計算結果が v に代入されて、4を足した値が最終的に計算結果が求められるため、この関数は確かに (+ 1 2) を評価する段階での「残りの計算」の表現である。 call/cc[編集] Schemeの call-with-current-continuation (call/cc と省略される) は、その時点での継続を引数として関数を呼び出す手続きである。Schemeの言語仕様書(R7RS[4])には「もっとも単純な例」として次のコードが載っている: このコードは、真正な(終端が空リストである)リストが渡された際にはそのリストの要素数を数えて返し、そうでない場合はfalse値を返す。 goto文を持つ言語の意味論[編集] 継続の概念はgoto文を持つ言語に意味論を与

  • Route 477(2010-04-14)

    ■ [ruby] Common Lisp的な、「再開可能な例外」をRubyで 実装は以下。もちろん継続ですw Magnus Holm - Continue that exception 例: 10.times do |i| begin raise "OH NO!" puts "OH YES! #{i}" i += 1 rescue => err if i < 5 err.continue ### これ(Exception#continue)が「例外が発生した次の行」に飛ぶ else raise err end end end 実行結果: /tmp % ruby-1.9 -rcontinuation a.rb OH YES! 0 OH YES! 1 OH YES! 2 OH YES! 3 OH YES! 4 a.rb:48:in `rescue in block in <main>': Ru

    Route 477(2010-04-14)
  • Practical Scheme

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

    Practical Scheme
  • Mattias Felleisen, Amr Sabry 「Continuations in Programming Practice: Introduction and Survey」の訳

    戻る Mattias Felleisen, Amr Sabry 「Continuations in Programming Practice: Introduction and Survey」 を訳したもの。 参考文献のところが省略されていたりして、まだいいかげん。 Continuations in Programming Practice: Introduction and Survey Mattias Felleisen, Amr Sabry 目次 1. 計画 2. 制御スタックと継続 2.1 関数の呼出しと戻り 2.2 再帰呼出し 3. 評価器の制御状態 3.1 Tiny Schemeの定義 3.2 自然意味論 3.3 項書換え 3.4 実践: 他の言語の評価 3.5 CEK機械 4. 継続を操作する 4.1 エラー脱出 4.2 ラベルとジャンプ 4.3 例

    ohnishiakira
    ohnishiakira 2009/04/08
    一通り読んだもののイマイチ理解できていない・・・。
  • 1