에라토스테네스의 체: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Kevshlee (토론 | 기여)
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>
 
== 같이 보기 ==