タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

contとprogrammingに関するyamanetoshiのブックマーク (2)

  • 継続を渡してチェーンすること - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「Erlangメッセージによる割り込み -- 継続への入り口として」において、Erlangで実際に使われている継続渡しっぽい手法を紹介しました。 それで、なーんか似たようなことをやったような、、、と、はるか昔の記憶が刺激されて、あーあー思い出したよ。 むかし、僕、MS-DOSのバッチファイルでテキストエディタ作ったことがあるんですよ(って、どんだけバカだったかが分かる)。それをASCIIネットのjunk.testにアップロードしましたね(って、どんだけ昔かが分かる)。 今はcallでサブバッチファイルを呼び出せるのですが、昔はそんなのなくて、バッチフィルからバッチファイルを呼び出すのは無理でした。チェーンならできるんですけどね。呼び出しじゃなくてチェーンて何?って人は次を実行してみてください。 main.bat @echo off echo main 1 sub echo main 2 s

    継続を渡してチェーンすること - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • setjmp/longjmpとローカル変数 - sumiiのブログ

    call/ccが出てきたので、ついでに: #include <setjmp.h> int main() { int x, y; jmp_buf k; x = 123; y = setjmp(k); if (y == 0) { x = 45; longjmp(k, 1); } return x + y; } はいくつを返すか、という話。 > gcc jmp.c -o jmp > ./jmp > echo $status 46 > gcc -O3 jmp.c -o jmp > ./jmp > echo $status 124xにvolatileをつけ忘れると、こういうこと↑になります… Cf. > (let ((x 123)) (let ((y (call-with-current-continuation (lambda (k) (set! x 45) (k 1))))) (+ x y)))

    setjmp/longjmpとローカル変数 - sumiiのブログ
  • 1