|
1 | | -# -> prints 0123456789 (not followed by newline) |
| 1 | +# prints 0123456789 (not followed by newline) |
2 | 2 | (loop [x :range [0 10]] |
3 | | - (prin x)) |
| 3 | + (prin x)) # -> nil |
4 | 4 |
|
5 | 5 | # Cartesian product (nested loops) |
6 | 6 |
|
7 | | -# -> prints 00010203101112132021222330313233 |
| 7 | +# prints 00010203101112132021222330313233 |
8 | 8 | # Same as (for x 0 4 (for y 0 4 (prin x y))) |
9 | 9 | (loop [x :range [0 4] |
10 | 10 | y :range [0 4]] |
11 | | - (prin x y)) |
| 11 | + (prin x y)) # -> nil |
12 | 12 |
|
13 | | -# -> prints bytes of "hello, world" as numbers |
| 13 | +# prints bytes of "hello, world" as numbers |
14 | 14 | (loop [character :in "hello, world"] |
15 | | - (print character)) |
| 15 | + (print character)) # -> nil |
16 | 16 |
|
17 | | -# -> prints 1, 2, and 3, in an unspecified order |
| 17 | +# prints 1, 2, and 3, in an unspecified order |
18 | 18 | (loop [value :in {:a 1 :b 2 :c 3}] |
19 | | - (print value)) |
| 19 | + (print value)) # -> nil |
20 | 20 |
|
21 | | -# -> prints 0 to 99 inclusive |
| 21 | +# prints 0 to 99 inclusive |
22 | 22 | (loop [x :in (range 100)] |
23 | | - (print x)) |
| 23 | + (print x)) # -> nil |
24 | 24 |
|
25 | 25 | # Complex body |
26 | 26 | (loop [x :in (range 10)] |
27 | 27 | (print x) |
28 | | - (print (inc c)) |
29 | | - (print (+ x 2))) |
| 28 | + (print (inc x)) |
| 29 | + (print (+ x 2))) # -> nil |
| 30 | +# prints n, n+1, n+2 (for n = 0 through 9) each time through the loop |
| 31 | +# 0 |
| 32 | +# 1 |
| 33 | +# 2 |
| 34 | +# ... |
| 35 | +# 9 |
| 36 | +# 10 |
| 37 | +# 11 |
30 | 38 |
|
31 | 39 | # Iterate over keys |
32 | 40 | (loop [k :keys {:a 1 :b 2 :c 3}] |
33 | | - (print k)) |
| 41 | + (print k)) # -> nil |
34 | 42 | # print a, b, and c in an unspecified order |
35 | 43 |
|
36 | 44 | (loop [index :keys [:a :b :c :d]] |
37 | | - (print index)) |
38 | | -# print 0, 1, 2, and 3 in order. |
| 45 | + (print index)) # -> nil |
| 46 | +# print 0, 1, 2, and 3 in order. |
39 | 47 |
|
40 | 48 | (defn print-pairs |
41 | 49 | [x] |
42 | 50 | (loop [[k v] :pairs x] |
43 | 51 | (printf "[%v]=%v" k v))) |
44 | 52 |
|
45 | | -(print-pairs [:a :b :c]) |
| 53 | +(print-pairs [:a :b :c]) # -> nil |
| 54 | +# prints |
46 | 55 | # [0]=:a |
47 | 56 | # [1]=:b |
48 | 57 | # [2]=:c |
49 | 58 |
|
50 | | -(print-pairs {:a 1 :b 2 :c 3}) |
| 59 | +(print-pairs {:a 1 :b 2 :c 3}) # -> nil |
| 60 | +# prints |
51 | 61 | # [:a]=1 |
52 | 62 | # [:b]=2 |
53 | 63 | # [:c]=3 |
|
56 | 66 | # of the loop |
57 | 67 |
|
58 | 68 | (loop [x :range [0 100] :when (even? x)] |
59 | | - (print x)) |
| 69 | + (print x)) # -> nil |
60 | 70 | # prints even numbers 0, 2, 4, ..., 98 |
61 | 71 |
|
62 | 72 | (loop [x :range [1 100] :while (pos? (% x 7))] |
63 | | - (print x)) |
| 73 | + (print x)) # -> nil |
64 | 74 | # prints 1, 2, 3, 4, 5, 6 |
65 | 75 |
|
66 | 76 | # Consume fibers as generators |
|
71 | 81 | (yield i))))) |
72 | 82 |
|
73 | 83 | (loop [x :in f] |
74 | | - (print x)) |
| 84 | + (print x)) # -> nil |
75 | 85 | # print 0, 1, 2, ... 99 |
76 | 86 |
|
77 | 87 | # Modifiers in nested loops |
78 | | - |
79 | 88 | (loop [x :range [0 10] |
80 | 89 | :after (print) |
81 | 90 | y :range [0 x]] |
82 | | - (prin y " ")) |
| 91 | + (prin y " ")) # -> nil |
| 92 | +# prints |
83 | 93 | # 0 |
84 | 94 | # 0 1 |
85 | 95 | # 0 1 2 |
|
89 | 99 | # 0 1 2 3 4 5 6 |
90 | 100 | # 0 1 2 3 4 5 6 7 |
91 | 101 | # 0 1 2 3 4 5 6 7 8 |
| 102 | + |
0 commit comments