summaryrefslogtreecommitdiff
path: root/src/content/en/pastebins/2016/04
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/en/pastebins/2016/04')
-rw-r--r--src/content/en/pastebins/2016/04/05/rpn.adoc23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/content/en/pastebins/2016/04/05/rpn.adoc b/src/content/en/pastebins/2016/04/05/rpn.adoc
new file mode 100644
index 0000000..c567d0d
--- /dev/null
+++ b/src/content/en/pastebins/2016/04/05/rpn.adoc
@@ -0,0 +1,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.
+|#
+----