所以我正在尝试使用一些代码并在let和lambda两种方案表达方法之间进行更改。
我的代码如下:
(let splice ((l '()) (m (car s)) (r (cdr s)))
(append
(map (lambda (x) (cons m x)) (perm (append l r)))
(if (null? r) '()
(splice (cons m l) (car r) (cdr r)))))
我正在尝试将最外层的let定义更改为lambda格式,但由于代码的嵌套性质,这有点令人困惑。到目前为止,我试图做的是:
(lambda (splice (l m r))
(append
(map (lambda (x) (cons m x)) (perm (append l r)))
(if (null? r) '()
(cut (cons m l) (car r) (cdr r)))))
(('()) (car upList) (cdr upList))
这显然是错误的,但我不知道如何进一步进行......