summaryrefslogtreecommitdiff
path: root/sieve/euler.scm
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2015-10-25 12:36:33 +1100
committerJed Barber <jjbarber@y7mail.com>2015-10-25 12:36:33 +1100
commit0f9a7c7fb9d8f1c4fda02e325771ce7b3f75c637 (patch)
tree73a6540811c071ddf649ec1bd601a4ead5f7fbd6 /sieve/euler.scm
parent0a48ed023ea65d75851ba2a4151100602695a2fd (diff)
Factored out common scheme code into modules
Diffstat (limited to 'sieve/euler.scm')
-rw-r--r--sieve/euler.scm23
1 files changed, 6 insertions, 17 deletions
diff --git a/sieve/euler.scm b/sieve/euler.scm
index ac23a94..dfc12de 100644
--- a/sieve/euler.scm
+++ b/sieve/euler.scm
@@ -1,27 +1,16 @@
-(use-modules (srfi srfi-41))
+(add-to-load-path (dirname (current-filename)))
+(import
+ (srfi srfi-41)
+ (extra-functional)
+ (my-streams))
-(define base (stream-from 2))
-
-
-
-(define (curry f)
- (lambda (x)
- (lambda (y)
- (f x y))))
-
-
-(define-stream (stream-ordered-diff xstrm ystrm)
- (stream-match xstrm (() '()) ((x . xs)
- (stream-match ystrm (() xstrm) ((y . ys)
- (cond ((< x y) (stream-cons x (stream-ordered-diff xs ystrm)))
- ((> x y) (stream-ordered-diff xstrm ys))
- (else (stream-ordered-diff xs ys))))))))
+(define base (stream-from 2))