diff options
| author | Jan Tuomi <jan.tuomi@valuemotive.com> | 2022-09-25 16:51:54 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-05 14:21:53 +0200 |
| commit | 2a35e9cb7ad4f0ed350362135dd0d3094db27d09 (patch) | |
| tree | c4a1022b9ad74320c6803ad756788ca5c04f5823 /examples | |
| parent | 1bf07cea4e38ba7c190d725fa887a139d229aef0 (diff) | |
Clean up, add more example code
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/test.lisp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/examples/test.lisp b/examples/test.lisp index 5f1dcf4..27275a0 100644 --- a/examples/test.lisp +++ b/examples/test.lisp @@ -1,3 +1,23 @@ +(let compose (\[f g] + (\[x] (f (g x))))) + +((compose (+ 1) (+ 2)) 3) + +(let mod (\[n k] + (- n (* k (/ n k))))) + +(let not (\[b] + (match b + true false + false true))) + +(let is-even (\[n] + (match (mod n 2) + 0 true + 1 false))) + +(let is-odd (compose not is-even)) + ;; map :: (a -> b) -> [a] -> [b] (let map (\[f lst] (match lst @@ -22,13 +42,7 @@ true (prepend (head lst) (filter pred (tail lst))) false (filter pred (tail lst)))))) -(let pred (\[n] - (match n - 2 true - 4 true - false))) - -(filter pred [0 1 2 3 4 5]) +(filter is-even [0 1 2 3 4 5]) (let fibo (\[n] (let lazy fibo-1 (fibo (- n 1))) @@ -40,9 +54,6 @@ (fibo 10) -(let mod (\[n k] - (- n (* k (/ n k))))) - (let reverse_ (\[v a] (let lazy x (head v)) (let lazy xs (tail v)) @@ -55,8 +66,3 @@ (reverse_ v []))) (reverse [1 2 3]) - -(let compose (\[f g] - (\[x] (f (g x))))) - -((compose (+ 1) (+ 2)) 3) |
