1
私は学校の割り当てのためのスキームでプログラムを実行しようとしています。リストがあれば、そのリストのすべての順列を返すことになっています。私の問題は、なぜそれが数字ではなく文字では機能しないのか分からないことです。それは論理のいずれかを変更するように見えません!ここでスキーム内のリストの順列は数字ではなくリスト内の要素としての文字として機能します
は私のコードです:
(define (remove1 x lst)
(cond
((null? lst) '())
((= x (car lst)) (remove1 x (cdr lst)))
(else (cons (car lst)
(remove1 x (cdr lst))))))
(define (permute lst)
(cond
((= (length lst) 1) (list lst))
(else (apply append (map (lambda (i)
(map (lambda (j) (cons i j))
(permute (remove1 i lst))))
lst)))))
(permute '(1 2 3))
文字を並べ替える試みはありません。 –