https://twitter.com/kinaba のログ (twilog の方が便利です。)
他は(まだ)想像の範囲内だけど1ページ縛りって尋常じゃないな。すげえええ! http://listeners.peca.jp/?%C7%DB%BF%AE%BC%D4%BE%F0%CA%F3%2F%A5%A8%A5%EB%A5%D0 | |
てか裏白蛇2時間半切りのひとのラップタイム知りたいな。9F, 17F, 47F の到達タイムだけでも | |
call/cc スタイルより Rhino の継続(first-class-"return")の方が把握しやすいし説明しやすいからいいなーと思ってたんだけど、まったく限定継続に一般化できないのが問題だな。なんか new Continuation() スタイルの限定継続ないかな | |
『「今仮にこの関数からこの値をreturnして計算を進めたら、resetのところでどんな値が帰ることになるか?」を教えてくれるreturn』になるか>shift | |
new ContinuationUpto(elem_of_callstack)。てか、shiftに対してresetが動的束縛なのがややこしいので、静的束縛になるのはなんかないか | |
おー? shift/reset は static なのか http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR611 なんか俺が勘違いしている気がする | |
M[デリミタ C[キャプチャ k. e]] = M[デリミタ (let k x = デリミタ C[x] in e)] が static(shift/reset) で、右辺の2個のデリミタが無いセマンティクス3通りがdynamicと呼ばれている | |
変数スコープ的な意味でのdynamic/staticとは直接的には違うようだ、たぶん。てか、10ヶ月かかってやっと http://d.hatena.ne.jp/ku-ma-me/20080417/p2 が理解できました。確かにこうなる | |
shift/reset の場合、shift {|k| [2] + ... } のkには、単純にshift{[3]+...};[] する継続が入る。control/prompt は、shift {[2] + ... } は [1]+... って継続の中で呼ばれるのでそこまで捕まえる | |
それはそれとして、クロージャの変数束縛的な意味でいうとshift/resetの対応はまだdynamicだと思うんだけど、これstaticにしてもまあまあ使えるものになっちゃったりしてしかもわかりやすくなっちゃったりするのでは的なことを考えている | |
問題は限定継続の使いどころとかよくわからんので全く具体例で考えられないことである | |
もうひとつ問題は、俺は70時間後の発表の資料準備をまったくせずに何を考えているのかという | |
いや一応、今日のけーぞく関連投稿1個目と2個目の合間の2時間の空白の間は発表練習してたくらいにはマジメに準備してますですよ。 | |
というわけで帰宅した |