n을 나눌 수있는 정수를 모두 나열하려고합니다. 이것은 숙제 문제입니다. 지금까지 나는 이것을했다.하스켈 필터 함수 오류
divisors :: Int -> [Int]
divisors n | n < 1 = []
| otherwise = filter (\n -> n `mod` x == 0) [1..n]
where x = [1..n]
나는 이것이 잘못된 것이지만 올바른 필터 조건자를 얻지는 못한다는 것을 알고 있습니다. 구문을 이해하는 방법을 모르겠습니다. 그리고 당연히 모든 요소 1 ~ n을 나열하기 때문에 n mod
n을 사용할 수 없습니다.
의 인수해야하다? –
아니요. 필터 구문을 사용하는 방법에 대한 다른 질문이었습니다. 이것은 좀 더 구체적인 질문이며이를 위해 새 질문을 제안했습니다. 죄송합니다. – Amjad
비슷한 게시물이 며칠 전에 작성되었습니다 : http://stackoverflow.com/questions/8701662/haskell-finding-divisors-of-an-integer –