aboutsummaryrefslogblamecommitdiff
path: root/_pastebins/2016-04-05-rpn-macro-setup.md
blob: 25ca6ba1f8de141f954cdbbcc39898d378399e92 (plain) (tree)
1
2
3
4
5
6
7
8
9
   
 
                      
 
                
 
            
 
        


                    





















                                                                            
---

title: RPN macro setup

date: 2016-04-05

layout: post

lang: en

ref: rpn-macro-setup

---

```lisp
(defmacro rpn (body)
  (rpn-expander body))

(defun rpn-expander (body)
  (mapcar (lambda (x)
                (if (listp x)
                    (rpn-expander x)
                    x))
          (reverse body)))

(rpn ((2 1 +) 2 *))
; => 6

#|
Just a quick stub.

One could easily improve #'RPN-EXPANDER in order to better suit one's needs.
|#
```