CommonLisp Scheme Part12
■ このスレッドは過去ログ倉庫に格納されています
0066デフォルトの名無しさん
NGNGその計算を行う関数を作りたいのですが、四則演算やカッコの優先順位付けに
かなり苦戦しています。一応再帰でカッコを順にはずす関数を作ってはみたんですが・・・
(defun flat (x)
(calc
(cond ((null x) NIL)
((atom x) x)
((atom (car x)) (cons (car x) (flat (cdr x))))
(T (append (flat (car x)) (flat (cdr x))))
)
)
)
実際に計算するcalc関数ができない上、この方法だと実装不可能なような気も。
どなたか別なアプローチで組める方いませんか?
【入力】 【期待する出力結果】
(calculate '(1 + 2)) → 3
(calculate '(1 + 2 * 3)) → 7
(calculate '(1 + 2 * (3 + 2)))→ 11
■ このスレッドは過去ログ倉庫に格納されています