タグ

ブックマーク / www.ice.nuie.nagoya-u.ac.jp/~h003149b (5)

  • 継続の使用法

    「継続の書(Book of Continuation): 8面以降でもコンティニューできるようになる」 (「レインボーアイランド」) Schemeには継続を扱うための関数 call-with-current-continuation (別名 call/cc) がある。 でもここでは blockという(機能としては違いの無い)構文を定義して、 それを使って説明していく。 blockの定義は、 (define-syntax block (syntax-rules () ((_ name e1 e2 ...) (call-with-current-continuation (lambda (name) e1 e2 ...))))) とか、 (define-macro (block name . body) `(call-with-current-continuation (lambda (,n

    mhrs
    mhrs 2006/06/18
  • 継続の説明(前置き)

    継続の説明の断片 「John Reynolds "The Discoveries of Continuations" によると、 継続の概念が初めて現れるのは1964年らしい。 そして、1970、1971年頃(さらにその後も)何人もの人によって再発見されている。 Knuth は、何人もの人が独立に演算子順位文法を考えだしたのに 自分は思いつかなかったから、 「自分は、自力で演算子順位文法を思いつけなかった唯一の計算機科学者だ」 とか考えたらしい。 「自分は、自力で継続を思いつけなかった唯一の計算機科学者だ」 と考えた人もいるのだろうか。」 C言語のexit() 関数は、関数呼び出しと言うよりジャンプだ、 という事を聞くことがある。 なぜかというとexit() は関数呼び出しから戻ってこないから。 例えば、 exit(1); printf("Not reached\n"); となっている時、

    mhrs
    mhrs 2006/06/18
  • Haskellの入出力

    参照透過性と遅延評価 純粋遅延関数型言語に入出力を導入する場合には、 参照透過性や遅延評価とどう折り合いをつけるか、 が問題になる。 参照透過性(Referential Transparency) 「参照透過性」の正確な定義は知らない。 けれど、だいたい 「等しいものを別の等しいものに置き換えられて、 置き換えての全体の結果が変わらない」 という性質を「参照透過性」と呼ぶ。 (「代入可能性の原理」とどう違うのかは、よく判らない) なんでこの性質を参照透過性と呼ぶのかも正確な所は判らないけど、 たぶん次のような事が元になっているのでは、と予想している (以下しばらく、題(入出力の話)とは関係ない)。 クワインは「指示と様相」(「論理的観点から」に収録)で、 だいたい次のような事を書いている。 名前(とか項とか)が単に対象を指示するものとして現れている場合を 「純粋に指示的(purely r

    mhrs
    mhrs 2006/06/18
  • プログラム言語とその他のメモ。

    プログラミングそのものは、あまり好きではない。 当然、実用的な内容はない。 2005年4月以降どうなるか不明。 Lispの(S式以外の)特徴(未完成) Scheme、Common Lisp、Emacs Lispの比較(未完成) 内容のわりに長い。 自己出力プログラムと自己参照プログラム 計算できない問題・関数について 停止問題とかbusy beaver関数の事など。 Schemeでラムダ計算 不動点オペレータについて 再帰的定義に使うYオペレータとかの事。 継続の説明(前置き) 継続の使用法 Schemeでの継続の使用。 SchemeとActor理論 CPS(Continuation Passing Style)について 「SchemeとActor理論」と同じ内容なので、 どうするか考え中。 CPSで多値(とか) values、call-with-valuesがあるから、 無理してS

    mhrs
    mhrs 2006/06/18
  • Scheme、Common Lisp、Emacs Lispの比較

    「王女アテー姫を含めてハザールの男女は、 この能力によって朝ごと変身を済ませ、 そのたびに、見たこともない斬新な顔で立ち現れる。 だから近親者同士でさえ見分けがつかないほどだ。 旅行者の見聞はこれとはまったく異なり、ハザールの顔つきはどれもそっくりで、 しかも歳を重ねても容貌が変わらない。それゆえ人違いの混乱や厄介が絶えない。 どちらにせよ、結果は同じことで、ハザール族の顔はまず覚えられないし、 覚えても無益となる。」 ミロラド・パヴィチ「ハザール事典」 Lispには数限りないほどの方言がある (例えば、 http://dreamsongs.com/NewFiles/Hopl2Slides.pdf とか参照)。 そのなかで普及している Lispというと、 Scheme、Common Lisp、Emacs Lispの3つだろう。 ユーザの多さでいうと、多い順に Emacs Lisp、Comm

  • 1