diff options
Diffstat (limited to 'srfi/srfi-41')
-rw-r--r-- | srfi/srfi-41/util.scm | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/srfi/srfi-41/util.scm b/srfi/srfi-41/util.scm deleted file mode 100644 index 5bef95cb..00000000 --- a/srfi/srfi-41/util.scm +++ /dev/null @@ -1,29 +0,0 @@ -(define-module (srfi srfi-41 util) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-41) - #:use-module (util) ; let*, find-min - #:export (stream-car+cdr interleave-streams)) - -(define (stream-car+cdr stream) - (values (stream-car stream) - (stream-cdr stream))) - -;; Merges a number of totally ordered streams into a single -;; totally ordered stream. -;; ((≺, stream)) → (≺, stream) -(define (interleave-streams < streams) - ;; Drop all empty streams - (let ((streams (remove stream-null? streams))) - ;; If all streams where empty, end the output stream - (if (null? streams) - stream-null - (let* ((min other (find-min < stream-car streams)) - (m ms (stream-car+cdr min))) - (stream-cons m (interleave-streams < (cons ms other))))))) - -;;; Varför är allting så långsamt‽‽‽‽‽‽‽‽ - -(define-public (filter-sorted-stream proc stream) - (stream-take-while - proc (stream-drop-while - (negate proc) stream))) |