From 5d07594f534f297aab58de8c361b8658704c2193 Mon Sep 17 00:00:00 2001 From: Linus Date: Tue, 11 May 2021 13:36:05 +0200 Subject: [PATCH] Tagged a release --- example.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/example.scm b/example.scm index c67eab1..dc63661 100644 --- a/example.scm +++ b/example.scm @@ -1,9 +1,18 @@ -(load "goof.scm") - +(import (goof)) (define (erathostenes n) (define vec (make-vector n #t)) - (loop/list ((:for i (up-from 2 (to n))) + (loop ((:for i (up-from 2 (:to n))) + (:when (vector-ref vec i)) + (:acc lst (listing i)) + (:for j (up-from (* 3 i) (:to n) (:by (* i 2))))) + => lst + (vector-set! vec j #f))) + +(define (erathostenes2 n) + (define vec (make-vector n #t)) + (loop/list ((:for i (up-from 2 (:to n))) (:when (vector-ref vec i))) - (loop ((:for j (up-from (* 2 i) (to n) (by i)))) + ;; Here we set all multiples of i to #f + (loop ((:for j (up-from (* 3 i) (:to n) (:by (* i 2))))) (vector-set! vec j #f)) i))