9 (str "
\e[1m" s "
\e[0m")))
13 (str "
\e[1;34m" s "
\e[0m")))
17 (bold (blue (str s "\n")))))
28 (title2 "| \/ | / \ | |")
29 (title2 "| |\/| | / _ \ | | ")
30 (title2 "| | | |/ ___ \| |___ ")
31 (title2 "|_| |_/_/ \_\_____|"))
34 "- a lisp1 written in bash4")
36 (title "mal - an interpreter for a subset of Clojure"))
38 (title "mal - an interpreter for a subset of Clojure")
39 "- written in GNU make")
41 (title "mal - an interpreter for a subset of Clojure")
42 "- written in GNU make"
45 (title "mal - an interpreter for a subset of Clojure")
46 "- written in GNU make"
50 (title "mal - an interpreter for a subset of Clojure")
51 "- written in GNU make"
56 (title "mal - an interpreter for a subset of Clojure")
57 "- written in GNU make"
63 (title "mal - an interpreter for a subset of Clojure")
64 "- written in GNU make"
69 "- and 17 other languages")
71 (title "things it has")
72 "- scalars: integers, strings, symbols, keywords, nil, true, false"
73 "- immutable collections: lists, vectors, hash-maps"
76 " - varargs: (fn* (x y & more) ...)"
77 "- tail call optimization"
78 " - except GNU make implementation (no iteration)"
79 "- macros (quote, unquote, quasiquote, splice-quote)"
80 "- over 500 unit tests"
81 "- REPL with line editing (GNU readline/libedit/linenoise)")
83 (title "things it does not have")
86 "- GC (in bash, make, C implementations)"
88 "- lots of other things")
95 "- gherkin was an inspiration to higher levels of crazy"
96 "- evolved into learning tool"
97 "- way to learn about Lisp and also the target language"
98 "- each implementation broken into small 11 steps")
101 "- Peter Norvig: inspiration: lispy"
102 " - http://norvig.com/lispy.html"
103 "- Alan Dipert: gherkin, original gherkin slides"
104 " - https://github.com/alandipert/gherkin")
106 (title "mal - Make a Lisp")
107 "https://github.com/kanaka/mal")
113 (if (> (count slides) 0)
117 (apply println (map (fn* (line) (str "\n " line)) (first slides)))
120 (present (rest slides))))))