diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2022-01-11 22:01:23 -0800 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2022-01-11 22:01:23 -0800 |
| commit | 68986fe0410584c6934c835bb0ee784655f5f8c5 (patch) | |
| tree | d51bc2f3e09df35ef81b7a0c462ff555b4344701 /sort.csc | |
| parent | Add a first implementation of a macro expander. (diff) | |
| download | chromatopelma-68986fe0410584c6934c835bb0ee784655f5f8c5.tar.zst | |
Move scheme compiler into a separate directory.
Diffstat (limited to 'sort.csc')
| -rw-r--r-- | sort.csc | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/sort.csc b/sort.csc deleted file mode 100644 index 62b1c9d..0000000 --- a/sort.csc +++ /dev/null @@ -1,24 +0,0 @@ -(define-library (csc sort) - (export sort) - (import (scheme base) - (only (csc list) - revappend - split-at)) - (begin - - - (define (sort cmp xs) - (let ((len (length xs))) - (if (<= len 1) - xs - (let-values (((half-a half-b) (split-at (truncate-quotient len 2) xs))) - (let ((sorted-half-a (sort cmp half-a)) - (sorted-half-b (sort cmp half-b))) - (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)))))))))))) |
