annotate src/rlm/abomination_desolation.clj @ 0:78a630e650d2

initial import
author Robert McIntyre <rlm@mit.edu>
date Tue, 18 Oct 2011 00:57:08 -0700
parents
children
rev   line source
rlm@0 1 (ns abomination-desolation)
rlm@0 2
rlm@0 3 ;; The Abomination:
rlm@0 4
rlm@0 5 (defmacro dolet [& [_ eq :as s]]
rlm@0 6 (if (and eq (= "=" (name eq)))
rlm@0 7 (let [[lcl _ expr & more] s]
rlm@0 8 `(let [~lcl ~expr]
rlm@0 9 (dolet ~@more)))
rlm@0 10 (let [[expr & more] s]
rlm@0 11 (if (empty? more)
rlm@0 12 expr
rlm@0 13 `(do ~expr (dolet ~@more))))))
rlm@0 14
rlm@0 15 ;; The Desolation:
rlm@0 16
rlm@0 17 (defn doit []
rlm@0 18 (dolet
rlm@0 19 i = 5
rlm@0 20 j = 10
rlm@0 21 (println i j)
rlm@0 22 k = (+ i j)
rlm@0 23 (* k 2)))