diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2022-08-01 19:35:19 -0700 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2022-08-01 19:35:19 -0700 |
| commit | acc561366f3fe6ec0377103f52ef0f7e923711c9 (patch) | |
| tree | d7a19cfbad78a69ebea71b27302e708c0655863d /csc/sort.csc | |
| parent | 99ce19a8053a93457885f32ec54c1c5b7c1961c1 (diff) | |
| download | chromatopelma-acc561366f3fe6ec0377103f52ef0f7e923711c9.tar.zst | |
Modify the project structure.
Now the lib directory contains what will eventually end up on the
user's /usr/lib/csc. When I write make install, it will copy all of
the .csc files from lib into the destination lib directory. This means I
can start working on the standard library in lib/scheme.
Diffstat (limited to 'csc/sort.csc')
| -rw-r--r-- | csc/sort.csc | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/csc/sort.csc b/csc/sort.csc deleted file mode 100644 index 6be1e16..0000000 --- a/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))))) |
