Changeset 39706 in project
- Timestamp:
- 03/14/21 20:10:48 (6 weeks ago)
- Location:
- release/5/srfi-41/trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
release/5/srfi-41/trunk/srfi-41.egg
r39705 r39706 2 2 3 3 ((synopsis "SRFI 41 (Streams)") 4 (version "2.0. 3")4 (version "2.0.4") 5 5 (category data) 6 6 (author "Philip L. Bewig, for CHICKEN by Kon Lovett") … … 10 10 (test-dependencies check-errors) 11 11 (components 12 (extension srfi-41 13 (types-file) 14 (component-dependencies streams) 15 (csc-options "-O3" "-d1" "-strict-types" "-no-procedure-checks-for-toplevel-bindings")) 12 16 (extension streams 13 (types-file)14 (component-dependencies srfi-41)15 (csc-options "-O3" "-d1" "-strict-types" "-no-procedure-checks-for-toplevel-bindings"))16 (extension srfi-4117 17 (types-file) 18 18 (component-dependencies streams-primitive streams-derived) … … 23 23 (extension streams-derived 24 24 (types-file) 25 (component-dependencies streams-primitive) 25 26 (csc-options "-O3" "-d1" "-strict-types" "-no-procedure-checks" "-no-bound-checks")) 26 27 (extension streams-utils … … 30 31 (extension streams-math 31 32 (types-file) 32 (component-dependencies streams -utils)33 (component-dependencies streams streams-utils) 33 34 (csc-options "-O3" "-d1" "-strict-types" "-no-procedure-checks-for-toplevel-bindings")) 34 35 (extension streams-queue -
release/5/srfi-41/trunk/srfi-41.scm
r38514 r39706 17 17 ; THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 18 19 (module srfi-41 19 (module srfi-41 () 20 20 21 (;export 22 ; srfi 23 stream-null 24 stream-cons 25 stream? 26 stream-null? 27 stream-pair? 28 stream-car 29 stream-cdr 30 stream-lambda 31 define-stream 32 list->stream 33 port->stream 34 stream 35 stream->list 36 stream-append 37 stream-concat 38 stream-constant 39 stream-drop 40 stream-drop-while 41 stream-filter 42 stream-fold 43 stream-for-each 44 stream-from 45 stream-iterate 46 stream-length 47 stream-let 48 stream-map 49 stream-match 50 stream-of 51 stream-range 52 stream-ref 53 stream-reverse 54 stream-scan 55 stream-take 56 stream-take-while 57 stream-unfold 58 stream-unfolds 59 stream-zip 60 ; extras 61 stream-occupied? 62 check-stream 63 error-stream 64 check-stream-occupied 65 error-stream-occupied) 21 (import scheme 22 (chicken module) 23 (chicken platform)) 66 24 67 (import scheme) 68 (import (chicken module)) 69 (import (chicken platform)) 70 (import streams-primitive) 71 (import streams-derived) 25 (import streams) 26 (reexport streams) 72 27 73 28 (register-feature! 'srfi-41) 74 (register-feature! 'streams)75 29 76 ) ;module streams30 ) ;module srfi-41 -
release/5/srfi-41/trunk/streams-derived.scm
r39705 r39706 66 66 error-input-port error-list)) 67 67 68 (include "chicken-primitive-object-inlines")69 (include "streams-inlines")70 (include "inline-type-checks")68 (include-relative "chicken-primitive-object-inlines") 69 (include-relative "streams-inlines") 70 (include-relative "inline-type-checks") 71 71 72 72 ;;; -
release/5/srfi-41/trunk/streams-math.scm
r38514 r39706 34 34 fibonacci-stream) 35 35 36 (import scheme )37 (import (chicken base))38 (import (chicken type))39 (import streams) 40 (importstreams-utils)36 (import scheme 37 (chicken base) 38 (chicken type) 39 streams 40 streams-utils) 41 41 42 (include "chicken-primitive-object-inlines")43 (include "streams-inlines")42 (include-relative "chicken-primitive-object-inlines") 43 (include-relative "streams-inlines") 44 44 45 45 ;;; Section Combinators 46 46 47 (: left-section ((procedure (#!rest) *) #!rest -> (procedure (#!rest) *))) 48 ; 49 (define (left-section fn . args) 50 (lambda xs (apply fn (append args xs))) ) 47 (define (left-section fn . args) (lambda xs (apply fn (append args xs)))) 51 48 52 49 ;;; -
release/5/srfi-41/trunk/streams-queue.scm
r38514 r39706 1 ;;;; streams-queue.scm 1 ;;;; streams-queue.scm -*- Scheme -*- 2 2 ;;;; Kon Lovett, Feb '19 3 3 ;;;; Kon Lovett, Aug '10 4 4 5 ;;;; From "samples.ss" 5 ::::Provides a functional queue abstraction using streams.6 ;;;; Provides a functional queue abstraction using streams. 6 7 7 8 (module streams-queue 8 9 9 10 (;export 11 ;original 10 12 queue-null 11 13 queue-null? 12 14 queue-cons 13 15 queue-head 14 queue-tail) 16 queue-tail 17 ;extras 18 make-queue 19 queue) 15 20 16 (import scheme )17 (import (chicken base))18 (import (chicken type))19 (import (only type-errors error-pair)) 20 (import streams)21 (import scheme 22 (chicken base) 23 (chicken type) 24 streams 25 (only type-errors error-pair)) 21 26 22 (include "chicken-primitive-object-inlines")23 (include "streams-inlines")24 (include "inline-type-checks")27 (include-relative "chicken-primitive-object-inlines") 28 (include-relative "streams-inlines") 29 (include-relative "inline-type-checks") 25 30 26 31 ;;; 27 32 28 (define-inline ( queue-checkf r)33 (define-inline (finalize-queue f r) 29 34 (if (%fx< (stream-length r) (stream-length f)) 30 35 (%cons f r) 31 36 (%cons (stream-append f (stream-reverse r)) stream-null) ) ) 37 38 ;;; 32 39 33 40 (define queue-null … … 39 46 (define (queue-cons q x) 40 47 (%check-pair 'queue-cons q 'queue) 41 ( queue-check(%car q) (stream-cons x (%cdr q))) )48 (finalize-queue (%car q) (stream-cons x (%cdr q))) ) 42 49 43 50 (define (queue-head q) … … 50 57 (%check-pair 'queue-tail q 'queue) 51 58 (if (stream-null? (%car q)) 52 (error 'queue-head "empty queue") 53 (queue-check (stream-cdr (%car q)) (%cdr q)) ) ) 59 (error 'queue-tail "empty queue") 60 (finalize-queue (stream-cdr (%car q)) (%cdr q)) ) ) 61 62 ;; 63 64 ; l 1 2 3 => q 3 2 1 65 (define (make-queue ls) 66 (let loop ((ls ls) (q queue-null)) 67 (if (%null? ls) q 68 (loop (%cdr ls) (queue-cons q (%car ls))) ) ) ) 69 70 ; 1 2 3 => q 3 2 1 71 (define (queue . rest) (apply make-queue rest)) 54 72 55 73 ) ;streams-queue -
release/5/srfi-41/trunk/streams-utils.scm
r38514 r39706 47 47 binary-tree-same-fringe?) 48 48 49 (import scheme )50 (import (chicken base))51 (import (chicken type))52 (import (only type-errors53 error-list error-procedure54 error-string error-natural-integer))55 (import streams)56 57 (include "chicken-primitive-object-inlines")58 (include "streams-inlines")59 (include "inline-type-checks")49 (import scheme 50 (chicken base) 51 (chicken type) 52 streams 53 (only type-errors 54 error-list error-procedure 55 error-string error-natural-integer)) 56 57 (include-relative "chicken-primitive-object-inlines") 58 (include-relative "streams-inlines") 59 (include-relative "inline-type-checks") 60 60 61 61 ;;; -
release/5/srfi-41/trunk/streams.scm
r38514 r39706 19 19 (module streams () 20 20 21 (import scheme) 22 (import (chicken module)) 23 (import (srfi 41)) 24 (reexport (srfi 41)) 21 (import scheme 22 (chicken module) 23 (chicken platform)) 24 25 (import streams-primitive) 26 (reexport streams-primitive) 27 28 (import streams-derived) 29 (reexport streams-derived) 30 31 (register-feature! 'streams) 25 32 26 33 ) ;module streams -
release/5/srfi-41/trunk/tests/srfi-41-test.scm
r38514 r39706 1 1 ;;;; srfi-41-test.scm -*- Scheme -*- 2 3 ;(import section-combinators)4 (import streams)5 (import streams-utils)6 (import streams-math)7 (import type-errors)8 (import (chicken condition))9 10 ;;; Section Combinators11 12 ;13 (define (left-section fn . args)14 (lambda xs (apply fn (append args xs))) )15 16 ;17 (define (right-section fn . args)18 ;(append xs args) = (reverse (append (reverse args) (reverse xs)))19 (lambda xs (apply fn (append xs args))) )20 2 21 3 ; Copyright (C) 2007 by Philip L. Bewig of Saint Louis, Missouri, USA. All rights … … 32 14 ; CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 33 15 ; THE USE OR OTHER DEALINGS IN THE SOFTWARE. 16 17 (import streams) 18 (import streams-utils) 19 (import streams-math) 20 (import type-errors) 21 (import (chicken condition)) 22 23 ;;; 24 25 ;;section-combinators 26 27 (define (left-section fn . args) (lambda xs (apply fn (append args xs)))) 28 29 ;(append xs args) = (reverse (append (reverse args) (reverse xs))) 30 (define (right-section fn . args) (lambda xs (apply fn (append xs args)))) 34 31 35 32 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; unit tests
Note: See TracChangeset
for help on using the changeset viewer.