2010-10-01から1ヶ月間の記事一覧

srfi-18とsrfi-34のraise

(call/cc (lambda (k) (with-exception-handler (lambda (x) (print "condition: ") (print x) (k 'exception)) (lambda () (with-exception-handler (lambda (x) (raise (list 'foo x))) (lambda () (raise 'bar))))))) srfi-18のraiseだと無限ループして,…

dynamic-windマジぱねぇっす

(dynamic-wind (lambda () (print 'before1)) (lambda () (define cont #f) (print 1) (dynamic-wind (lambda () (print 'before2)) (lambda () (print 2) (set! cont (call/cc values))) (lambda () (print 'after2))) (dynamic-wind (lambda () (print 'be…

foldのcallbackの引数の順序

絶対おかしいと思うんだけどどうしてこうなっているのか… (fold list 0 '(1 2 3) '(4 5 6)) ; => (3 6 (2 5 (1 4 0))) この仕様の所為で,foldの実装で素直にapplyできないんだけど… 実装が複雑になってもコストは同じなんだろうか. 意味的にも固定数のもの…

括弧の呪縛

C++

C++0xのコード. int main() { [](){}() ; } http://cpplover.blogspot.com/2009/11/lambda.html 本当,Lispは括弧だらけとか言ったの誰だよw

BiwaSchemeメモ

JavaScriptで書かれたScheme処理系BiwaSchemeに関するメモ. R6RS準拠を目指している. call/ccが何故か構文 call-with-current-continuationを評価させると#だけどcall/ccだとundefined(でも使える) mapのcallbackの中で作られる継続のextentが(多分)mapに…

delayは要らない子?

Gaucheのような (lazy 3) を許す処理系だと,実はdelayを使う意味ってなかったりする?