List.foldr의 람다 함수에서 요소가 조건과 일치하면 합계에 1을 더해야하지만 그렇지 않으면 0을 더해야합니다. 이렇게하면 조건과 일치하는 요소의 수를 추적 할 수 있습니다.
val xs = [1,3,5,8,6,9,10,14,13,16,15]
val len = List.foldr (fn (x, t) => (if x > 5 andalso x < 15 then 1 else 0) + t) 0 xs
실행하면 다음과 같은 결과를 얻을 수 있습니다.
val xs = [1,3,5,8,6,9,10,14,13,16,15] : int list
val len = 6 : int
출처
https://stackoverflow.com/questions/22008881