Added (delete) and (delete-duplicates)

This commit is contained in:
Justin Ethier 2015-05-15 14:20:05 -04:00
parent 0c983a6a08
commit 97b8e81682

View file

@ -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))