From da27cf183a33969177ffe34b969cf1f199f2ab9d Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 14 Aug 2016 01:40:45 +0200 Subject: [PATCH] lib/srfi/srfi-1.scm: add append-map, filter, find. --- lib/srfi/srfi-1.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lib/srfi/srfi-1.scm diff --git a/lib/srfi/srfi-1.scm b/lib/srfi/srfi-1.scm new file mode 100644 index 00000000..8bc8d838 --- /dev/null +++ b/lib/srfi/srfi-1.scm @@ -0,0 +1,15 @@ +(define (find pred lst) + (let loop ((lst lst)) + (if (null? lst) #f + (if (pred (car lst)) (car lst) + (loop (cdr lst)))))) + +(define (filter pred lst) + (let loop ((lst lst)) + (if (null? lst) '() + (if (pred (car lst)) + (cons (car lst) (loop (cdr lst))) + (loop (cdr lst)))))) + +(define (append-map f lst) + (apply append (map f lst)))