リストのペアの変数をリストに代入できる関数を書く必要があります。例(subsitute-var '((p #t) (Q #f)) '(P and Q or Q))
スキーム
のために私はいくつかのコード
(define substitute
(lambda (A B list)
(cond
((null? list) '())
((list? (car list))
(cons (substitute A B (car list)) (substitute A B (cdr list))))
((eq? (car list) A) (cons B (substitute A B (cdr list))))
(else
(cons (car list) (substitute A B (cdr list)))))))
(define substitute-var
(lambda (list var)
(cond
((null? list) '())
((null? var) '())
((substitute (caar var) (car (cdr (car var))) list))
(substitute-var list (cdr var)))))
を書いてきたが、物事はそれが唯一の最初のペア(p #t)
を代用し、同じようなリストの残りの部分を残していることです。私はsubstitute-var
を再帰的に呼び出そうとしますが、それも機能しません。私は助けが必要です。私はあなたが得たと思う私はあなたに
また、このsubstitute-var関数の結果は次のようになります(subsitute-var '((p #t)(Q #f))'(PとQまたはQ))=>(#tと#fまたは#f) – Daniel
'list'の代わりの引数を呼ぶのは残念です。その理由は、 'list'は組み込み関数であるからです。私はそれをxsなどと呼ぶことをお勧めします。 – soegaard