blob: 0389ad903f678c32a908b239e74fad48635e86ec (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
(module (algebraic-structures private stream applicative) ()
(import scheme
(srfi 41)
(only (chicken base) cute)
(chicken module))
(export pure map2)
(reexport (algebraic-structures stream functor))
(define (pure x) (stream x))
(define-stream (product op s1 s2)
(if (stream-null? s1)
stream-null
(stream-append (stream-map (cute op (stream-car s1) <>) s2)
(product op (stream-cdr s1) s2))))
(define map2 product))
|