(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

エラトステネスの篩を書いてみた

唐突に書きたくなったので、書いてみた。

(define (sieve n)
  (define (iter ls m)
    (if (not m)
	ls
	(iter (filter (^x (or (= m x) (not (zero? (mod x m)))))
		      ls)
	      (find (cut > <> m) ls))))
  (iter (lrange 2 n) 2))

;;test
(sieve 100)

昔、自分が書いたものより汚くなった気がする。泣いた。。