0

そのため、いくつかのコードを試して、letlambdaの 2 つのスキーム表現方法を変更しようとしています。

私が持っているコードは次のとおりです。

(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 (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))

これは明らかに間違っていますが、さらに先に進む方法がわかりません...

4

1 に答える 1