diff options
author | bnewbold <bnewbold@eta.mit.edu> | 2009-02-24 19:53:41 -0500 |
---|---|---|
committer | bnewbold <bnewbold@eta.mit.edu> | 2009-02-24 19:53:41 -0500 |
commit | db950ffbdf0cc267e3254255e5d3daefd06392fa (patch) | |
tree | f598dc9443c923ba81b1d66b4b498b18625619ab /ps03_evalapply/kons.scm | |
parent | 3743c40e8c99d59abd95481848cb9e773a0c1ce4 (diff) | |
download | 6.945-db950ffbdf0cc267e3254255e5d3daefd06392fa.tar.gz 6.945-db950ffbdf0cc267e3254255e5d3daefd06392fa.zip |
problem set 3 files
Diffstat (limited to 'ps03_evalapply/kons.scm')
-rw-r--r-- | ps03_evalapply/kons.scm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ps03_evalapply/kons.scm b/ps03_evalapply/kons.scm new file mode 100644 index 0000000..4fc7b73 --- /dev/null +++ b/ps03_evalapply/kons.scm @@ -0,0 +1,12 @@ +;;; A valuable special form -- the nonstrict version of CONS: + +(define (kons? exp) + (and (pair? exp) + (eq? (car exp) 'kons))) + +(defhandler eval + (lambda (expression environment) + (cons (delay-memo (cadr expression) environment) + (delay-memo (caddr expression) environment))) + kons?) + |