aboutsummaryrefslogtreecommitdiff
path: root/src/lisp/std.lisp
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-04-18 07:29:44 +0100
committerAkshay <[email protected]>2021-04-18 07:29:44 +0100
commit81488c3ea8d66680f739cee087ad9aa7619f5e0e (patch)
tree5ef0edb9401ee05a1999db2088d69daf0e0bb6ee /src/lisp/std.lisp
parent73514f48554dcd860f1c1c675d53c8d3ae6aa800 (diff)
clippy lint; add `get-pixel` primitive
Diffstat (limited to 'src/lisp/std.lisp')
-rw-r--r--src/lisp/std.lisp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lisp/std.lisp b/src/lisp/std.lisp
index 6c5beed..a256125 100644
--- a/src/lisp/std.lisp
+++ b/src/lisp/std.lisp
@@ -40,6 +40,13 @@
40 (cons (func (car ls)) 40 (cons (func (car ls))
41 (map func (cdr ls))))) 41 (map func (cdr ls)))))
42 42
43(define (zip l1 l2)
44 (if (or (null? l1)
45 (null? l2))
46 '()
47 (cons (cons (car l1) (car l2))
48 (zip (cdr l1) (cdr l2)))))
49
43(define (filter pred ls) 50(define (filter pred ls)
44 (if (null? ls) 51 (if (null? ls)
45 '() 52 '()
@@ -57,3 +64,11 @@
57 64
58(define (sum ls) (fold 0 + ls)) 65(define (sum ls) (fold 0 + ls))
59(define (product ls) (fold 1 * ls)) 66(define (product ls) (fold 1 * ls))
67
68(define (reverse ls)
69 (begin
70 (define (rev-helper p acc)
71 (if (null? p)
72 acc
73 (rev-helper (cdr p) (cons (car p) acc))))
74 (rev-helper ls '())))