From f3a7991a23253533818fa25a1b7012d4656eee0c Mon Sep 17 00:00:00 2001 From: bnewbold Date: Mon, 25 Apr 2016 18:34:39 -0400 Subject: add basic 'prelude' file --- prelude.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 prelude.scm diff --git a/prelude.scm b/prelude.scm new file mode 100644 index 0000000..1a8d853 --- /dev/null +++ b/prelude.scm @@ -0,0 +1,24 @@ +; This file contains Scheme/LISP helpers that are intended to be loaded into a +; base environment before execution begins. + + +(define caar (lambda (x) (car (car x)))) +(define cadr (lambda (x) (car (cdr x)))) +(define cdar (lambda (x) (cdr (car x)))) +(define cddr (lambda (x) (cdr (cdr x)))) +(define caaar (lambda (x) (car (car (car x))))) +(define caadr (lambda (x) (car (car (car x))))) +(define cadar (lambda (x) (car (car (car x))))) +(define caddr (lambda (x) (car (car (car x))))) +(define cdaar (lambda (x) (car (car (car x))))) +(define cdadr (lambda (x) (car (cdr (cdr x))))) +(define cddar (lambda (x) (car (cdr (cdr x))))) +(define cdddr (lambda (x) (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 compose (lambda (f g) (lambda args (f (apply g args))))) -- cgit v1.2.3