From a89d6c82e981fec7d6e4c975e083d2b9e04467ad Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Mon, 1 May 2023 07:56:42 -0700 Subject: Rewrite most of the compiler. This represents a major step back in terms of functionality, and amount of code. The latter I think constitutes a major win. Next steps are to reimplement syntax-rules, call/cc, and call-with-values. --- lib/csc/sort.csc | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 lib/csc/sort.csc (limited to 'lib/csc/sort.csc') diff --git a/lib/csc/sort.csc b/lib/csc/sort.csc deleted file mode 100644 index 6be1e16..0000000 --- a/lib/csc/sort.csc +++ /dev/null @@ -1,28 +0,0 @@ -(define-library (csc sort) - (export sort) - (import (scheme base) - (only (csc list) - revappend - split-at)) - (begin - - - (define (sort-len cmp xs len) - (if (<= len 1) - xs - (let ((n/2 (truncate-quotient len 2))) - (let-values (((half-a half-b) (split-at n/2 xs))) - (let ((sorted-half-a (sort-len cmp half-a n/2)) - (sorted-half-b (sort-len cmp half-b (- len n/2)))) - (let loop ((a sorted-half-a) - (b sorted-half-b) - (acc '())) - (cond ((null? a) (revappend acc b)) - ((null? b) (revappend acc a)) - ((cmp (car b) (car a)) - (loop a (cdr b) (cons (car b) acc))) - (else (loop (cdr a) b (cons (car a) acc)))))))))) - - - (define (sort cmp xs) - (sort-len cmp xs (length xs))))) -- cgit v1.3.1