여기가 제 기능입니다. 양수 값을 확인하고 값을 1로 변경 한 다음 합합니다.양수 값을 계산하십시오.
countPositive :: [Integer] -> Integer
countPositive xs = foldr (+) 0 $ map (^0) (filter (>0) xs)
length
그러나 다만 foldr
, map
및 filter
을 사용하지 않고 양의 값을 계산하는 더 나은 전략이 있는가?
countPositive = foldr (\n count -> if n > 0 then count + 1 else count) 0
또는 foldr
와 length
다시 구현 :
const succ를 설명 할 수 있습니까? – nick
'const succ = \ a -> succ = \ a n -> succ n = \ a n -> n + 1'. 목록의 요소 (첫 번째 인수)를 무시하고 카운터를 증가시키기만합니다 (두 번째 인수). – huon