Commit | Line | Data |
---|---|---|
c5d30235 JM |
1 | ["do", |
2 | ||
2774a151 JM |
3 | ["def", "_path", ["require", ["`", "path"]]], |
4 | ||
5 | ["def", "_node_readline", ["require", [".", "_path", ["`", "resolve"], | |
6 | ["`", "."], | |
7 | ["`", "node_readline.js"]]]], | |
8 | ||
c5d30235 JM |
9 | ["def", "div", ["fn", ["a", "b"], ["parseInt", ["/", "a", "b"]]]], |
10 | ||
d90c7844 JM |
11 | ["def", "time-ms", ["fn", [], |
12 | [".", ["new", "Date"], ["`", "getTime"]]]], | |
13 | ||
32045546 JM |
14 | |
15 | ["def", "assoc", ["fn", ["src-hm", "&", "kvs"], | |
16 | ["let", ["hm", ["clone", "src-hm"]], | |
17 | ["assocs!", "hm", "kvs"]]]], | |
18 | ||
19 | ["def", "dissoc", ["fn", ["src-hm", "&", "ks"], | |
20 | ["let", ["hm", ["clone", "src-hm"]], | |
21 | ["do", | |
22 | ["map", ["fn", ["k"], ["del", "hm", "k"]], "ks"], | |
23 | "hm"]]]], | |
24 | ||
25 | ["def", "_get", ["fn", ["obj", "key"], | |
26 | ["if", ["nil?", "obj"], | |
27 | null, | |
28 | ["if", ["contains?", "obj", "key"], | |
29 | ["get", "obj", "key"], | |
30 | null]]]], | |
31 | ||
c5d30235 JM |
32 | ["def", "_count", ["fn", ["a"], |
33 | ["if", ["=", null, "a"], | |
34 | 0, | |
35 | ["count", "a"]]]], | |
36 | ||
f618f6a1 JM |
37 | ["def", "_nth", ["fn", ["seq", "idx"], |
38 | ["if", [">=", "idx", ["count", "seq"]], | |
39 | ["throw", "nth: index out of range"], | |
40 | ["nth", "seq", "idx"]]]], | |
41 | ||
42 | ["def", "_first", ["fn", ["seq"], | |
43 | ["if", ["empty?", "seq"], | |
44 | null, | |
45 | ["first", "seq"]]]], | |
46 | ||
75048743 DM |
47 | ["def", "_rest", ["fn", ["seq"], |
48 | ["if", ["empty?", "seq"], | |
49 | ["`", []], | |
50 | ["rest", "seq"]]]], | |
51 | ||
2774a151 JM |
52 | ["def", "_apply", ["fn", ["f", "&", "args"], |
53 | ["let", ["fn", ["if", ["malfunc?", "f"], ["get", "f", ["`", "fn"]], "f"], | |
54 | "fargs", ["concat", ["slice", "args", 0, ["-", ["count", "args"], 1]], | |
55 | ["nth", "args", ["-", ["count", "args"], 1]]]], | |
56 | ["apply", "fn", "fargs"]]]], | |
57 | ||
58 | ["def", "_map", ["fn", ["f", "seq"], | |
59 | ["let", ["fn", ["if", ["malfunc?", "f"], ["get", "f", ["`", "fn"]], "f"]], | |
60 | ["map", "fn", "seq"]]]], | |
61 | ||
ad28cf3c JM |
62 | ["def", "with_meta", ["fn", ["obj", "m"], |
63 | ["let", ["new-obj", ["clone", "obj"]], | |
64 | ["do", | |
65 | ["set", "new-obj", ["`", "__meta__"], "m"], | |
66 | "new-obj"]]]], | |
67 | ||
68 | ["def", "meta", ["fn", ["obj"], | |
69 | ["if", ["or", ["sequential?", "obj"], | |
70 | ["map?", "obj"], | |
71 | ["malfunc?", "obj"]], | |
72 | ["if", ["contains?", "obj", ["`", "__meta__"]], | |
73 | ["get", "obj", ["`", "__meta__"]], | |
74 | null], | |
75 | null]]], | |
76 | ||
8cfab776 JM |
77 | ["def", "reset!", ["fn", ["atm", "val"], |
78 | ["set", "atm", ["`", "val"], "val"]]], | |
79 | ||
80 | ["def", "swap!", ["fn", ["atm", "f", "&", "args"], | |
81 | ["let", ["fn", ["if", ["malfunc?", "f"], ["get", "f", ["`", "fn"]], "f"], | |
82 | "fargs", ["cons", ["get", "atm", ["`", "val"]], "args"], | |
83 | "val", ["apply", "fn", "fargs"]], | |
84 | ["do", | |
85 | ["set", "atm", ["`", "val"], "val"], | |
86 | "val"]]]], | |
ad28cf3c | 87 | |
c5d30235 JM |
88 | ["def", "core-ns", |
89 | ["hash-map", | |
2774a151 JM |
90 | ["`", "="], "equal?", |
91 | ["`", "throw"], "throw", | |
92 | ||
93 | ["`", "nil?"], "nil?", | |
94 | ["`", "true?"], "true?", | |
95 | ["`", "false?"], "false?", | |
96 | ["`", "symbol"], "symbol", | |
97 | ["`", "symbol?"], "symbol?", | |
32045546 JM |
98 | ["`", "keyword"], "keyword", |
99 | ["`", "keyword?"], "keyword?", | |
c5d30235 JM |
100 | |
101 | ["`", "pr-str"], ["fn", ["&", "a"], ["pr-list", "a", true, ["`", " "]]], | |
102 | ["`", "str"], ["fn", ["&", "a"], ["pr-list", "a", false, ["`", ""]]], | |
103 | ["`", "prn"], ["fn", ["&", "a"], | |
104 | ["do", | |
105 | ["println", ["pr-list", "a", true, ["`", " "]]], | |
106 | null]], | |
107 | ["`", "println"], ["fn", ["&", "a"], | |
108 | ["do", | |
109 | ["println", ["pr-list", "a", false, ["`", " "]]], | |
110 | null]], | |
9d8f0299 | 111 | ["`", "read-string"], "read-str", |
2774a151 JM |
112 | ["`", "readline"], ["fn", ["p"], |
113 | [".", "_node_readline", ["`", "readline"], "p"]], | |
9d8f0299 | 114 | ["`", "slurp"], "slurp", |
c5d30235 JM |
115 | |
116 | ["`", "<"], "<", | |
117 | ["`", "<="], "<=", | |
118 | ["`", ">"], ">", | |
119 | ["`", ">="], ">=", | |
120 | ["`", "+"], "+", | |
121 | ["`", "-"], "-", | |
122 | ["`", "*"], "*", | |
123 | ["`", "/"], "div", | |
d90c7844 | 124 | ["`", "time-ms"], "time-ms", |
c5d30235 | 125 | |
32045546 JM |
126 | ["`", "list"], "list", |
127 | ["`", "list?"], "list?", | |
128 | ["`", "vector"], "vector", | |
129 | ["`", "vector?"], "vector?", | |
130 | ["`", "hash-map"], "hash-map", | |
131 | ["`", "assoc"], "assoc", | |
132 | ["`", "dissoc"], "dissoc", | |
133 | ["`", "map?"], "map?", | |
134 | ["`", "get"], "_get", | |
135 | ["`", "contains?"], "contains?", | |
136 | ["`", "keys"], "keys", | |
137 | ["`", "vals"], "vals", | |
138 | ||
139 | ["`", "sequential?"], "sequential?", | |
1981bf57 JM |
140 | ["`", "cons"], "cons", |
141 | ["`", "concat"], "concat", | |
f618f6a1 JM |
142 | ["`", "nth"], "_nth", |
143 | ["`", "first"], "_first", | |
75048743 | 144 | ["`", "rest"], "_rest", |
c5d30235 | 145 | ["`", "empty?"], "empty?", |
8cfab776 JM |
146 | ["`", "count"], "_count", |
147 | ["`", "apply"], "_apply", | |
148 | ["`", "map"], "_map", | |
149 | ["`", "conj"], null, | |
ad28cf3c JM |
150 | |
151 | ["`", "with-meta"], "with_meta", | |
8cfab776 JM |
152 | ["`", "meta"], "meta", |
153 | ["`", "atom"], "atom", | |
154 | ["`", "atom?"], "atom?", | |
155 | ["`", "deref"], ["fn", ["a"], ["get", "a", ["`", "val"]]], | |
156 | ["`", "reset!"], "reset!", | |
157 | ["`", "swap!"], "swap!"]], | |
c5d30235 JM |
158 | |
159 | null] |