summaryrefslogtreecommitdiff
path: root/src/content/pastebins/2016/04/05/rpn.adoc
blob: c567d0d57153315e92988f047c6f4cebeb673d37 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
= RPN macro setup

[source,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.
|#
----