Have delete-duplicates/sort! take a equality procedure

And change the default, as eq? doesn't always work.
This commit is contained in:
Christopher Baines 2024-01-18 14:38:33 +00:00
parent 45d9b1ad7c
commit 15b6dad5a5
3 changed files with 5 additions and 4 deletions

View file

@ -417,7 +417,7 @@ available. Return the resource once PROC has returned."
#t)
(define (delete-duplicates/sort! unsorted-lst less)
(define* (delete-duplicates/sort! unsorted-lst less #:optional (equal? equal?))
(if (null? unsorted-lst)
unsorted-lst
(let ((sorted-lst (sort! unsorted-lst less)))
@ -428,7 +428,7 @@ available. Return the resource once PROC has returned."
(if (null? lst)
result
(let ((current-element (car lst)))
(if (eq? current-element last-element)
(if (equal? current-element last-element)
(loop (cdr lst)
last-element
result)