入力がリストのリストである場合、入力からの要素を含むリストを出力して、トランプのデッキのようにシャッフルしたいと考えています。
たとえば、入力が '((1 2 3) (4 5)) の場合、出力は '(1 4 2 5 3) と表示されます。
私の考えは、最初にリスト内の最初のリストから要素を削除してから、リストのそのリストをリストの後ろに移動することです。このようにして、リストの次のリストの最初の要素を追加できます。
これまでの私のコードは次のとおりです。
(define (shuffle ls)
(if (null? ls) '()
(cond ((null? car (ls)) (append (cdr (ls)) (list (cdr(car(ls)))))))
(else (car (car (ls)))
(append (cdr (ls)) (list (cdr (car (ls))))
(shuffle (cdr (ls)))))))