저는 Haskell에서 목록의 이전 요소를 기반으로하는 조건에 따라 목록의 번호를 필터링하는 함수를 만드는 중입니다.
예
이전 숫자는 2의 배수입니다.
myFunction [1, 2, 5, 6, 3]
# expected output:
[5,3]
적용 방법을 알고 filter
있지만 지금까지 필터가 한 번에 하나의 인수 만 취하는 것을 보았습니다.
scanl1
,을 (를 foldl1
) 사용해 보았지만 map
Haskell이 처음이어서 그렇게 할 수 없었습니다. 어떤 단서?
편집하다
그것은해야한다:
myFunction [] = []
myFunction [x] = []
myFunction [x,y] = if (x `mod` 2) == 0 then [y] else []
myFunction (x:y:xs) = if (x `mod` 2) == 0
then y : (myFunction xs)
else myFunction (y:xs)
입력의 경우 :
myFuntion [1, 2, 5, 6, 3]
올바른 출력은 다음과 같아야합니다.
[5,3]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다