runtest: Don't worry about how implementation echoes input
[jackhill/mal.git] / impls / tests / step3_env.mal
CommitLineData
31690700
JM
1;; Testing REPL_ENV
2(+ 1 2)
3;=>3
4(/ (- (+ 5 (* 2 3)) 3) 4)
5;=>2
6
7
8;; Testing def!
9(def! x 3)
10;=>3
11x
12;=>3
13(def! x 4)
14;=>4
15x
16;=>4
17(def! y (+ 1 7))
18;=>8
19y
20;=>8
21
eb63e565
DM
22;; Verifying symbols are case-sensitive
23(def! mynum 111)
24;=>111
25(def! MYNUM 222)
26;=>222
27mynum
28;=>111
29MYNUM
30;=>222
31
9e8f5211
JM
32;; Check env lookup non-fatal error
33(abc 1 2 3)
f6f5d4f2 34;/.*\'?abc\'? not found.*
70f29a2b
JM
35;; Check that error aborts def!
36(def! w 123)
37(def! w (abc))
38w
39;=>123
31690700
JM
40
41;; Testing let*
42(let* (z 9) z)
43;=>9
44(let* (x 9) x)
45;=>9
46x
47;=>4
48(let* (z (+ 2 3)) (+ 1 z))
49;=>6
50(let* (p (+ 2 3) q (+ 2 p)) (+ p q))
51;=>12
9e8f5211
JM
52(def! y (let* (z 7) z))
53y
54;=>7
31690700 55
6f58a926
GL
56;; Testing outer environment
57(def! a 4)
58;=>4
59(let* (q 9) q)
60;=>9
61(let* (q 9) a)
62;=>4
63(let* (z 2) (let* (q 9) a))
64;=>4
65
a1eb30fc 66;>>> deferrable=True
9af8aee6 67;;
77fd710c 68;; -------- Deferrable Functionality --------
31690700 69
f5223195
JM
70;; Testing let* with vector bindings
71(let* [z 9] z)
72;=>9
73(let* [p (+ 2 3) q (+ 2 p)] (+ p q))
74;=>12
75
31690700
JM
76;; Testing vector evaluation
77(let* (a 5 b 6) [3 4 a [b 7] 8])
78;=>[3 4 5 [6 7] 8]