CommonLisp Scheme Part12
■ このスレッドは過去ログ倉庫に格納されています
0101デフォルトの名無しさん
NGNGあいにくSchemeしか知らんのでSchemeですまぬ
(define transform-1
(lambda (head rest)
(if (null? rest)
(transform head)
(case (car rest)
((+ -) (list
(car rest)
(transform head)
(transform-1 (cadr rest) (cddr rest))))
((* /) (transform-1
(list
(car rest)
(transform head)
(transform (cadr rest)))
(cddr rest)))
(else 'syntax-error))))))
(define transform
(lambda (expr)
(if (and (pair? expr) (not (memq (car expr) '(+ - * /))))
(transform-1 (car expr) (cdr expr))
expr)))
(define calc
(lambda (expr)
(eval (transform expr))))
■ このスレッドは過去ログ倉庫に格納されています