목록Web/Functional Programming (2)
Jiyong's STUDY
const not = v => !v; const beq = a => b => a===b; not은 정말 딱 not 연산만 해준다. beq는 갈라져서 a===b 연산만 한다. 이건 또 왜 쓰는걸까? _.some = list => !!_.find(list, _.identity); _.every = list => beq(-1)(_.findIndex(list, not)); console.log(_.some([0, null, 2])); // true console.log(_.every([0, null, 2])); // false 여기서 _.findIndex는? const findIndex = (list, predicate) => { for (let i = 0, len = list.length; i < len; ..
const identity = v => v; _.identity는 underscore.js에 존재하는 함수인데, 받은걸 그냥 그대로 리턴한다. 이걸 왜 써야하는지도 의문이고 언제 써야 하는지도 의문이다. 하지만 예시가 있는데, Boolean을 평가할 때 유용하게 쓸 수 있다. _.filter([true, 0, 10, 'a', false, null], _.identity); // [true, 10, 'a'] 리스트에서 true로 평가되는 값만 남긴다. 다른 예시로는 _.some = list => !!_.find(list, _.identity); _.every = list => _.filter(list , _.identity).length == list.length; console.log(_.some([0,..