2009-06-03 and-let* scheme gauche gosh> (define (ccar lst) (if (pair? lst) (car lst) #f)) ccar gosh> (and-let* ((a '(("reach!"))) (b (ccar a)) (c (ccar b)) (d (ccar c))) d) #f gosh> (and-let* ((a '((("reach!")))) (b (ccar a)) (c (ccar b)) (d (ccar c))) d) "reach!" モナドっぽい。