2017-09-19 2 views
3

나는 'a -> bool이라는 서명을 가진 몇 가지 필터 함수를 가지고 있습니다. 다른 필터가 AND 인 결합 필터를 만들고 싶습니다. 나는 이런 식으로 작업을 수행 할 수 있습니다 알고부울 반환 함수를 작성하는 방법

let fCombined x = 
    f1 x 
    && f2 x 
    && f3 x 

직접 그들을 완전히 적용하지 않고 기능을 구성 할 수있는 보다 간결 방법 (예를 들어, fCombined의 정의에서 x을 제거하여)이 있습니까?

(나는 'a -> 'a option 기능을 사용하고 Option.bind를 사용하여 구성하여 예 bool을 사용하지 않는 다른 방법이 있습니다 알고 있지만 거의 더 간결 없습니다.)

답변

7

당신이 인수 x을 잃고 싶지 경우

let (&&.) f g x = f x && g x 

let fCombined = f1 &&. f2 &&. f3 

그러나 나는 이것이 일종의 걱정거리라고 생각하지 않습니다. 논쟁을하는 것은 완전히 좋습니다.

+0

감사합니다. 연산자를 정의하는 방법을 잘 모르겠습니다. – cmeeren

관련 문제