継続マラソン4
;; 昨日のarinoさんの例にならって手続き内に閉じた call/cc で大域脱出します。 ;; joinするのに string-join 使っていたら本末転倒じゃないか!というのは遊び心ということで。 (define (message-join l) (call/cc (lambda (end) (letrec ((message-join-iter (lambda (ll messages) (if (null? ll) (end messages) (message-join-iter (cdr ll) (string-join (list messages (car ll)))))))) (message-join-iter l ""))))) (display (message-join (list "muda" "na" "join" "dane\n")))