[[ネタ記録庫/AA折れ線グラフ]] #contents *継続とは?[#y87e71e0] **参考文献 [#c9a07956] -[[なんでも継続:http://www.shiro.dreamhost.com/scheme/docs/cont-j.html]] -[[Scheme:なぜSchemeにはreturnが無いのか:http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3a%e3%81%aa%e3%81%9cScheme%e3%81%ab%e3%81%afreturn%e3%81%8c%e7%84%a1%e3%81%84%e3%81%ae%e3%81%8b]] -[[Schemeを作ろう 第3回:http://www.jah.ne.jp/~naoyuki/Writings/VScheme3.html]] -[[Scheme入門 継続:http://www.shido.info/lisp/scheme_cc.html]] - 継続には副作用がある。 [[Scheme:call/ccと副作用:http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3acall%2fcc%e3%81%a8%e5%89%af%e4%bd%9c%e7%94%a8]] **何ができるの? [#c933f2be] - 大域脱出 - 例外処理 - [[非決定性:http://www.shido.info/lisp/scheme_amb.html]] [[gemmaの実装:http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?amb]] 例えば、 (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) のうちから二つの数の和が素数になる組の1つを返します。 これを理解するのに、自分は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関数は、引数なしで呼ばれると、スタックをpopして、中身の、ツヅキを実行。 "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プログラミング:https://www-06.ibm.com/jp/developerworks/java/060412/j_j-cb03216.shtml]] -[[継続サーバの実装の最先端、Seaside:http://www.seaside.st/]] -[[Seasideの開発者が継続のゆくえについて語る:http://smallthought.com/avi/?p=14]] -[[HaskellのWASH:http://www.informatik.uni-freiburg.de/~thiemann/haskell/WASH/]] -[[もとネタになった??Queinnec氏の論文PDF:http://www-spi.lip6.fr/~queinnec/PDF/webcont.pdf]] -[[WebBasedアプリケーションと継続について、わかりやすい説明:http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3aCPS]] **もっと教えて! [#vf61a3fe] -[[名大の謎の天才h003149b氏:http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/index.html]] -[[SICP.Nondeterministic Computing:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_%_sec_4.3]]