標高+1m

Don't be rational.

continuation

biwascheme call/cc 非同期処理と大域脱出

引き続きbiwaschemeで呪文を唱えております。 ;;treasure hunt (let ((data (<o> 'data (fetch-json "treasure-map.json")))) (begin (listen-click "button") (console-log (<o> 'treasure (fetch-json (<o> 'treasure-url data)))))) #0: 宝探し call/ccで非同期処</o></o></o>…

call/ccの合成の解

やりたかったのはこういうことでした。 たまに便利なことがあると思う。 (define (compose-c/cc . fs) (letrec ((vals (list->vector (map (^ (f i) (f (lambda (res) (vector-set! vals i res) (when cont (cont))))) fs (iota (length fs))))) (cont #f)) …

sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す

Stop Writing JavaScript Compilers! Make Macros Insteadを読んで、sweet.jsを使ってみた。 解決したい事 JavaScriptでは非同期処理が多いので、継続渡しスタイルのコードばっかりになるのだけど、みんなこれをcallback hellとかpyramid of doomとか呼んで…