에라토스테네스의 체: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
Haskell로 구현한 코드 추가 |
|||
127번째 줄:
print result
</source>◆ Haskell 로 구현
타입 정보 있는 버전 (권장)<syntaxhighlight lang="haskell">
primes :: [Int]
primes = sieve [2..]
where sieve :: [Int] -> [Int]
sieve (prime : xs) = prime : sieve [x | x <- xs, x `mod` prime /= 0]
</syntaxhighlight>타입 정보 없는 버전 (Haskell의 타입 추론 이용)<syntaxhighlight lang="haskell">
primes = sieve [2..]
where sieve (prime : xs) = prime : sieve [x | x <- xs, x `mod` prime /= 0]
</syntaxhighlight>결과:<syntaxhighlight lang="haskell">
-- 처음 소수 10개 찾기
take 10 primes
[2,3,5,7,11,13,17,19,23,29]
-- 100보다 큰 소수 5개 찾기
take 5 $ filter (>100) primes
[101,103,107,109,113]
</syntaxhighlight>
== 같이 보기 ==
|