From 97b8e81682dbe53947b9e6b886c4fc2f460e5d14 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 15 May 2015 14:20:05 -0400 Subject: [PATCH] Added (delete) and (delete-duplicates) --- scheme/cyclone.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scheme/cyclone.scm b/scheme/cyclone.scm index eccae113..44e0da36 100644 --- a/scheme/cyclone.scm +++ b/scheme/cyclone.scm @@ -33,4 +33,16 @@ ;; Features implemented by this Scheme (define *features* '(cyclone)) +;; Based off corresponding SRFI-1 definition +(define (delete x lis) + (filter (lambda (y) (not (equal? x y))) lis)) +;; Inefficient version based off code from SRFI-1 +(define (delete-duplicates lis) + (define (recur lis) ; ((lis lis)) + (if (null? lis) lis + (let* ((x (car lis)) + (tail (cdr lis)) + (new-tail (recur (delete x tail)))) + (if (eq? tail new-tail) lis (cons x new-tail))))) + (recur lis))