0
我得到“错误:无效的lambda:(lambda(insert-all))”。这个Scheme程序中的错误在哪里?
(define permutations
(lambda (L)
(let
((insert-all
(lambda (e Ls)
(let
((insert-one
(lambda (L)
(letrec
((helper
(lambda(L R)
(if (null? R)
(list (append L(list e)R))
(helper (append L (list (car R))) (cdr R))
))))
(helper '() L)))))
(apply append(map insert-one Ls)))))))
(cond ((null? L) '())
((null?(cdr L)) (list L))
(else (insert-all (car L) (permutations ((cdr L))))))))
它应该返回给定列表的所有排列。
对于什么输入,你会得到'无效lambda'错误? '(排列((cdr L)))'是不正确的。 – GoZoner 2013-04-20 05:40:21