CommonLisp Scheme Part12
■ このスレッドは過去ログ倉庫に格納されています
0078デフォルトの名無しさん
NGNG安直で冗長だが
* or / が出てきたら前後の項をあわせて括弧でくくる
というやり方でもいける
(defun sub (exp)
(cond ((atom exp) exp)
((case (length exp)
(1 (sub (car exp)))
(3 (cons (cadr exp) (list (sub (car exp)) (sub (caddr exp)))))
(t (case (cadr exp)
((* /) (sub (cons (list (car exp) (cadr exp) (caddr exp)) (cdddr exp))))
((+ -) (list (cadr exp) (sub (car exp)) (sub (cddr exp))))))))))
■ このスレッドは過去ログ倉庫に格納されています