From 43861f9d91782d864dc9866eee1d39288bb3a76d Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 10 Oct 2021 18:03:56 +0200 Subject: Add list manipulation primitives --- examples/lists.bdl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 examples/lists.bdl (limited to 'examples') 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 @@ +;; +;; List operations. +;; + +;; List function. +(print "(list) -> ") (list) +(print "(list 1) -> ") (list 1) +(print "(list 1 2) -> ") (list 1 2) +(print "(list 1 2 3) -> ") (list 1 2 3) +(print "(list 4 5 (+ 1 2 3)) -> ") (list 4 5 (+ 1 2 3)) + +;; Car/cdr. +(print "(car (list 1 2 3)) -> ") (car (list 1 2 3)) +(print "(cdr (list 1 2 3)) -> ") (cdr (list 1 2 3)) +(print "(car (list (* 10 20) (+ 1 2 3) 50 60)) -> ") (car (list (* 10 20) (+ 1 2 3) 50 60)) +(print "(cdr (list (* 10 20) (+ 1 2 3) 50 60)) -> ") (cdr (list (* 10 20) (+ 1 2 3) 50 60)) +(print "(car (cdr (list (* 10 20) (+ 1 2 3) 50 60))) -> ") (car (cdr (list (* 10 20) (+ 1 2 3) 50 60))) + +;; Pairs construction. +(print "(cons 1 2) -> ") (cons 1 2) +(print "(cons \"a\" \"b\") -> ") (cons "a" "b") +(print "(cons \"a\" (cons \"c\" ())) -> ") (cons "a" (cons "c" ())) +(print "(cons 1 (cons 2 (cons (+ 1 2) ()))) -> ") (cons 1 (cons 2 (cons (+ 1 2) ()))) +(print "(cons 1 (cons 2 (cons (+ 1 2) 4))) -> ") (cons 1 (cons 2 (cons (+ 1 2) 4))) -- cgit v1.2.1