나는 입력 n에 기반하여 [1..n]의 모든 정수를 나열하는 haskell 프로그램을 가지고있다. 특정 조건을 조건으로 필터링하여 목록으로 표시하려고합니다. 필터 기능/조건은 어디에서 어떻게 사용할 수 있습니까?하스켈에서 필터 함수는 어떻게 사용합니까?
하스켈 문서에 따르면
filter :: (a -> Bool) -> [a] -> [a]
필터 술어를 만족하는 요소들의 목록을 리턴하는 술어 및리스트인가; 즉,
filter p xs = [ x | x <- xs, p x]
감사합니다! 그것을 아주 분명히 설명했다. 나는 짝수와 홀수를 필터링하는 방법을 이해했지만 입력 n을 나눌 수있는 숫자를 필터링하는 것은 어떨까? isDivisible n = filter [1..n] div n과 같은 것? 그 문법은 무엇입니까?: S – Amjad
'isDivisible n p = n \'mod \'p == 0' 줄을 따라 함수를 만들어야하고이를 술어로 사용하십시오. 이 함수는 n을 p로 나눈 나머지가 0이면 true를 반환하고 그렇지 않으면 false를 반환합니다. 인수는 원하는 순서와 약간 다른 순서로되어 있으므로, 지금은 정의에서 간단히 뒤집거나'flip'을 사용하는 것이 좋습니다. – Sarah
오류 발생,이 술어를 정의 할 위치가 확실하지 않습니다. 나는 필터 오른쪽과 같은 줄에서 사용할 수 없다고 생각합니까? 나는 프로그램이 입력을 받고 모든 제수를 나열하기를 원한다. 나는 이것을 위해 술어가 어떻게 정의되어 있는지 알고 싶다. 감사. – Amjad