Mercurial > rlm
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))) |