haskell code
public text v1 · immutablesieve :: Int -> [Int]
sieve n = helper False:(duplicate (n - 1) True)
where helper l =
let prime = findFirstTrue l
in
if prime > 0 then
prime:(helper (clearMultiples prime l))
else
[]
{-
Error in hugs is:
ERROR "test.hs":60 - Syntax error in expression (unexpected `}', possibly due to bad layout)
-}