aboutsummaryrefslogtreecommitdiffstats
path: root/prelude.scm
diff options
context:
space:
mode:
Diffstat (limited to 'prelude.scm')
-rw-r--r--prelude.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/prelude.scm b/prelude.scm
index 1a8d853..a3b123e 100644
--- a/prelude.scm
+++ b/prelude.scm
@@ -15,10 +15,18 @@
(define cddar (lambda (x) (car (cdr (cdr x)))))
(define cdddr (lambda (x) (car (cdr (cdr x)))))
+; my favorite!
+(define cdaddr (lambda (x) (cdr (car (cdr (cdr x))))))
+
(define if (lambda (pred tval fval) (cond (pred tval) (else fval))))
(define not (lambda (x) (if x #f #t)))
(define abs (lambda (x) (if (> x 0) x (* -1 x))))
-;(define for-each map)
+(define map
+ (lambda (f l)
+ (cond ((null? l) ())
+ (else (cons (f (car l)) (map f (cdr l)))))))
+
+(define for-each map)
;(define compose (lambda (f g) (lambda args (f (apply g args)))))