[Javascript] - Predicate

2020. 9. 26. 22:05개발/javascript, typescript

Predicate

filter(users, function(user){return user.id === 3})

위와 같이 썻을때 filter 함수가 어떤 것일까.

위와 같이 함수를 작성했을때, 두번째 인자로 오는 functionpredicate 라고 한다.

보통 함수는 일정한 로직을 거쳐 답을 내게 된다. 그 안에서 사용하는 조건이나 판별식은 동일 할 수 밖에 없다.

하지만 함수형 프로그래밍 에서 predicate 를 사용한다면 이야기가 달라진다.

함수는 흐름 만을 제공할 뿐 결과를 도출해 내는 판별식은 전적으로 predicate 에게 일임한다.

이렇게 우리는 조금 유연하게 함수를 작성할 수 있고 재사용성을 높일 수 있다.

//예시 함수
function filter(arr, predicate){
  let ret = 'non';
  arr.map(v => {
    if(predicate(v)){
      ret = v;
            return;
    }
  })
  return ret;
}