aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@valuemotive.com>2022-09-24 16:25:07 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2022-12-05 14:21:53 +0200
commitdcf52a44f8341b512b18265b3a308d10370ee4ff (patch)
treeca598d5db6949f516e2cc3a2a84751ff74e84711 /examples
parent70468c0217e70858bfa037ad81ce8caf1b582ec2 (diff)
Fix match
Diffstat (limited to 'examples')
-rw-r--r--examples/test.lisp37
1 files changed, 28 insertions, 9 deletions
diff --git a/examples/test.lisp b/examples/test.lisp
index 3b9fa5e..9930181 100644
--- a/examples/test.lisp
+++ b/examples/test.lisp
@@ -1,15 +1,34 @@
;; (let map (\[f lst]
;; (match lst
;; [] []
-;; (prepend (f head lst) (map f (tail lst))))))
+;; (prepend (f (head lst)) (map f (tail lst))))))
;; (map (+ 1) [1 2 3])
-(let mapinc (\[vec]
- (match vec
- [] []
- (prepend
- (+ 1 (head vec))
- (mapinc (tail vec))))))
-(env)
-(mapinc [1 2 3])
+;; (let mapinc (\[vec]
+;; (match vec
+;; [] []
+;; (prepend
+;; (+ 1 (head vec))
+;; (mapinc (tail vec))))))
+;; (env)
+;; (mapinc [1 2 3])
+
+;; (let fibo (\[n]
+;; ;; (let fibo-1 (\[] (fibo (sub2 n 1))))
+;; ;; (let fibo-2 (\[] (fibo (sub2 n 2))))
+;; (match n
+;; 0 0
+;; 1 1
+;; (+
+;; (fibo (- n 1))
+;; (fibo (- n 2))))))
+
+;; (fibo 10)
+
+(let foldr (\[f accumulator lst]
+ (match lst
+ [] accumulator
+ (f (foldr f accumulator (tail lst)) (head lst)))))
+
+(foldr + 0 [1 2 3])