March 2014 update
This commit is contained in:
parent
09687c4926
commit
a25938f123
1846 changed files with 21876 additions and 5203 deletions
|
|
@ -0,0 +1,20 @@
|
|||
(setf (symbol-function '^) #'expt) ; Make ^ an alias for EXPT
|
||||
|
||||
(defun print-stack (token stack)
|
||||
(format T "~a: ~{~a ~}~%" token (reverse stack)))
|
||||
|
||||
(defun rpn (tokens &key stack verbose )
|
||||
(cond
|
||||
((and (not tokens) (not stack)) 0)
|
||||
((not tokens) (car stack))
|
||||
(T
|
||||
(let* ((current (car tokens))
|
||||
(next-stack (if (numberp current)
|
||||
(cons current stack)
|
||||
(let* ((arg2 (car stack))
|
||||
(arg1 (cadr stack))
|
||||
(fun (car tokens)))
|
||||
(cons (funcall fun arg1 arg2) (cddr stack))))))
|
||||
(when verbose
|
||||
(print-stack current next-stack))
|
||||
(rpn (cdr tokens) :stack next-stack :verbose verbose)))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue