トップ
新規
単語検索
ヘルプ
ネタ記録庫/継続
をテンプレートにして作成
開始行:
[[ネタ記録庫/継続]]
#contents
*継続とは?[#y87e71e0]
**参考文献 [#c9a07956]
-[[なんでも継続:http://www.shiro.dreamhost.com/scheme/doc...
-[[Scheme:なぜSchemeにはreturnが無いのか:http://www.shiro...
-[[Schemeを作ろう 第3回:http://www.jah.ne.jp/~naoyuki/Wri...
-[[Scheme入門 継続:http://www.shido.info/lisp/scheme_cc.h...
- 継続には副作用がある。
[[Scheme:call/ccと副作用:http://www.shiro.dreamhost.com/s...
**何ができるの? [#c933f2be]
- 大域脱出
- 例外処理
- [[非決定性:http://www.shido.info/lisp/scheme_amb.html]]...
例えば、
(let ((i (amb 4 6 7))
(j (amb 5 8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))
;Value 23: (6 5)
のようにすると '(4 6 7) と '(5 8 11) のうちから二つの数...
これを理解するのに、自分は3ヶ月かかりました。
ambは、バックトラック演算子です。動きを大雑把に言うと、
(let (i (amb 4 6 7))で、
i に 4 が入ると同時に、
この時点のツヅキ、
"6 7))
(j (amb 5 8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush。
次の行、
(j (amb 5 8 11))で、
j に 5が入ると同時に、
この時点のツヅキ、
"8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush。
(prime? (+ 4 5))は偽。(amb)が動く。amb関数は、引数なしで...
"8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
が実行されて、jに8が入ると同時に、
この時点のツヅキ、
"11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush...という感じです。
**継続サーバはどうなった? [#qc90b476]
-[[境界を越える: 継続とWeb開発、そしてJavaプログラミング:...
-[[継続サーバの実装の最先端、Seaside:http://www.seaside.s...
-[[Seasideの開発者が継続のゆくえについて語る:http://small...
-[[HaskellのWASH:http://www.informatik.uni-freiburg.de/~t...
-[[もとネタになった??Queinnec氏の論文PDF:http://www-spi.l...
-[[WebBasedアプリケーションと継続について、わかりやすい説...
**もっと教えて! [#vf61a3fe]
-[[名大の謎の天才h003149b氏:http://www.ice.nuie.nagoya-u....
-[[SICP.Nondeterministic Computing:http://mitpress.mit.ed...
終了行:
[[ネタ記録庫/継続]]
#contents
*継続とは?[#y87e71e0]
**参考文献 [#c9a07956]
-[[なんでも継続:http://www.shiro.dreamhost.com/scheme/doc...
-[[Scheme:なぜSchemeにはreturnが無いのか:http://www.shiro...
-[[Schemeを作ろう 第3回:http://www.jah.ne.jp/~naoyuki/Wri...
-[[Scheme入門 継続:http://www.shido.info/lisp/scheme_cc.h...
- 継続には副作用がある。
[[Scheme:call/ccと副作用:http://www.shiro.dreamhost.com/s...
**何ができるの? [#c933f2be]
- 大域脱出
- 例外処理
- [[非決定性:http://www.shido.info/lisp/scheme_amb.html]]...
例えば、
(let ((i (amb 4 6 7))
(j (amb 5 8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))
;Value 23: (6 5)
のようにすると '(4 6 7) と '(5 8 11) のうちから二つの数...
これを理解するのに、自分は3ヶ月かかりました。
ambは、バックトラック演算子です。動きを大雑把に言うと、
(let (i (amb 4 6 7))で、
i に 4 が入ると同時に、
この時点のツヅキ、
"6 7))
(j (amb 5 8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush。
次の行、
(j (amb 5 8 11))で、
j に 5が入ると同時に、
この時点のツヅキ、
"8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush。
(prime? (+ 4 5))は偽。(amb)が動く。amb関数は、引数なしで...
"8 11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
が実行されて、jに8が入ると同時に、
この時点のツヅキ、
"11)))
(if (prime? (+ i j))
(list i j)
(amb)))"
を取り出して、スタックにpush...という感じです。
**継続サーバはどうなった? [#qc90b476]
-[[境界を越える: 継続とWeb開発、そしてJavaプログラミング:...
-[[継続サーバの実装の最先端、Seaside:http://www.seaside.s...
-[[Seasideの開発者が継続のゆくえについて語る:http://small...
-[[HaskellのWASH:http://www.informatik.uni-freiburg.de/~t...
-[[もとネタになった??Queinnec氏の論文PDF:http://www-spi.l...
-[[WebBasedアプリケーションと継続について、わかりやすい説...
**もっと教えて! [#vf61a3fe]
-[[名大の謎の天才h003149b氏:http://www.ice.nuie.nagoya-u....
-[[SICP.Nondeterministic Computing:http://mitpress.mit.ed...
ページ名: