From 44cc698c83b490bad4d31427539c188b4beea0fd Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Wed, 16 Jul 2008 17:08:37 +0000 Subject: [PATCH] mitch requests svn: r10795 --- collects/eopl/eopl.ss | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/collects/eopl/eopl.ss b/collects/eopl/eopl.ss index 8b7e8630fc..0ea31a7042 100644 --- a/collects/eopl/eopl.ss +++ b/collects/eopl/eopl.ss @@ -104,11 +104,11 @@ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (provide always? list-of) + (provide always? list-of maybe) (define always? (lambda (x) #t)) - + (define list-of (lambda (pred . l) (let ((all-preds (cons pred l))) @@ -125,6 +125,12 @@ ((car preds) (mcar obj)) (loop (mcdr obj) (cdr preds)))))))))) + (define maybe + (lambda (pred) + (lambda (obj) + (or (pred obj) + (eqv? obj #f))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define empty null) @@ -134,7 +140,10 @@ empty ;; for constructor-based printing trace untrace ;; debugging require module ;; we allow full use of modules - provide) ;; in case someone wants to use a module + provide ;; in case someone wants to use a module + make-parameter ;; / + parameterize ;; < Mitch asked for these + print-struct) ;; \ (define-syntax r5rs-out (syntax-rules ()