aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-10-10 18:03:56 +0200
committerBad Diode <bd@badd10de.dev>2021-10-10 18:03:56 +0200
commit43861f9d91782d864dc9866eee1d39288bb3a76d (patch)
tree32a67e5c602f5266aeaf3723020ba9c845c3204a /examples
parent2bbafc053adfd4af01503d3163cba71698855fb0 (diff)
downloadbdl-43861f9d91782d864dc9866eee1d39288bb3a76d.tar.gz
bdl-43861f9d91782d864dc9866eee1d39288bb3a76d.zip
Add list manipulation primitives
Diffstat (limited to 'examples')
-rw-r--r--examples/lists.bdl24
1 files changed, 24 insertions, 0 deletions
diff --git a/examples/lists.bdl b/examples/lists.bdl
new file mode 100644
index 0000000..4a27005
--- /dev/null
+++ b/examples/lists.bdl
@@ -0,0 +1,24 @@
1;;
2;; List operations.
3;;
4
5;; List function.
6(print "(list) -> ") (list)
7(print "(list 1) -> ") (list 1)
8(print "(list 1 2) -> ") (list 1 2)
9(print "(list 1 2 3) -> ") (list 1 2 3)
10(print "(list 4 5 (+ 1 2 3)) -> ") (list 4 5 (+ 1 2 3))
11
12;; Car/cdr.
13(print "(car (list 1 2 3)) -> ") (car (list 1 2 3))
14(print "(cdr (list 1 2 3)) -> ") (cdr (list 1 2 3))
15(print "(car (list (* 10 20) (+ 1 2 3) 50 60)) -> ") (car (list (* 10 20) (+ 1 2 3) 50 60))
16(print "(cdr (list (* 10 20) (+ 1 2 3) 50 60)) -> ") (cdr (list (* 10 20) (+ 1 2 3) 50 60))
17(print "(car (cdr (list (* 10 20) (+ 1 2 3) 50 60))) -> ") (car (cdr (list (* 10 20) (+ 1 2 3) 50 60)))
18
19;; Pairs construction.
20(print "(cons 1 2) -> ") (cons 1 2)
21(print "(cons \"a\" \"b\") -> ") (cons "a" "b")
22(print "(cons \"a\" (cons \"c\" ())) -> ") (cons "a" (cons "c" ()))
23(print "(cons 1 (cons 2 (cons (+ 1 2) ()))) -> ") (cons 1 (cons 2 (cons (+ 1 2) ())))
24(print "(cons 1 (cons 2 (cons (+ 1 2) 4))) -> ") (cons 1 (cons 2 (cons (+ 1 2) 4)))