blob: 965213e0c417f72946d3c52a156449490a33ee11 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
(assert-error (if (error "") 1 2))
(defmacro inmacro x `(progn ,@x))
(let ((i 0))
(while #t
(if (> i 4)
(break)
nil)
(incq i))
(assert (= i 5)))
(let ((i 0))
(while #t
(if (> i 4)
(let () (break))
nil)
(incq i))
(assert (= i 5)))
(let ((flag 0)
(i 0))
(while (< i 10)
(incq i)
(continue)
(setq flag 1))
(assert (= i 10))
(assert (= flag 0)))
(let ((f nil))
(setq f
(lambda (x)
(cond ((> x 5) 1)
((> x 0) (+ 1 1))
(#t (+ x 1)))))
(assert (= 1 (funcall f 10)))
(assert (= 2 (funcall f 3)))
(assert (= 0 (funcall f -1))))
(let ((r nil))
(if (> 2 1)
(setq r 1)
(setq r 2))
(assert (= r 1)))
(let ((r 1))
(when (> 2 1)
(setq r 2))
(assert (= r 2)))
(let ((r 1))
(when (> 1 2)
(setq r 2))
(assert (= r 1)))
(let ((r 1))
(unless (> 1 2)
(setq r 2))
(assert (= r 2)))
(let ((r 1))
(unless (> 2 1)
(setq r 2))
(assert (= r 1)))
(assert-error (funcall (lambda () (break))))
(assert-error (funcall (lambda () (continue))))
(assert (= 1 (funcall (lambda () (return 1)))))
(assert (= 1 (funcall (lambda () (inmacro (return 1) (return 2))))))
(assert (= 1 (funcall (lambda () (while #t (return 1))))))
(assert (= 1 (funcall (lambda () (let () (return 1))))))
(assert (= 1 (funcall (lambda () (let ((x (return 1))) (return 2))))))
|