(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

ふたつのリストを混ぜる

リストを交互に分配
これ読みながら逆ってどうやんのって思ったのでちょっと書いた。

(define (twist-list li1 li2 :optional (result '()))
  (if (and (null? li1) (null? li2))
      result
      (let ((li1-len (length li1))
            (li2-len (length li2)))
        (if (> li1-len li2-len)
            (twist-list (cdr li1) li2 (cons (car li1) result))
            (twist-list li1 (cdr li2) (cons (car li2) result))))))

(twist-list '(1 2 3 4 5) '(a b c d))
;; (5 d 4 c 3 b 2 a 1)

I need consider...