ちょっと面白いことをやってるのを見つけた。 cf. 往復運動(レシプロ運動)を表現する連番リストを作る(srfi-1 iota の変種) – 分室の分室 リストを作るんであれば unfold が使えると思ってやってみた。省略可能な引数 shift の処理には let-optionals* を使った。 (use srfi-1) (define reciprocating-motion (lambda (count start step limit . restargs) (let-optionals* restargs ((shift 0)) (unfold (lambda (seed) (zero? (car seed))) (lambda (seed) (+ (cadr seed) shift)) (lambda (seed) (let* ((c (car seed)) (s (cadd