함수형 프로그래밍

Take 함수 const take = (l, iter) => { let res = []; for (const a of iter) { res.push(a); if (res.length === l) return res; } return res; }; take 함수는 limit과 iterable 객체를 받아서 limit 개수 만큼 값을 저장하는 함수다. 그래서 range와 함께 5개의 원소만 뽑아내고자 한다면 다음과 같이 작성할 수 있다. const range = l => { let i = -1; let res = []; while (++i < l) { res.push(i); } return res; }; const L = {}; L.range = function *(l) { let i = -1; while ..
range, L.range 테스트 const range = l => { let i = -1; const res = []; while (++i { console.time(name); while (time--) f(); console.timeEnd(name); }; test('range', 10, () => reduce(add, range(10000..
Range 함수 range 함수는 숫자 하나를 받고 그 숫자만한 배열을 리턴하는 함수이다. 예를 들어 아래와 같이 로그를 찍으면, console.log(range(5)) [0, 1, 2, 3, 4]라는 배열이 반환되는 것을 기대할 수 있다. 위 함수는 절차적으로 아래와 같이 만들어 낼 수 있다. const range = l => { let i = -1; let res = []; while (++i a + b; const reduce = (f, acc, iter) => { if (!iter) { iter = ..
https://dev-scratch.tistory.com/151 [JavaScript] go, pipe로 읽기 좋은 코드 만들기 기존 함수의 문제 https://dev-scratch.tistory.com/150 [JavaScript] Map + Filter + Reduce 중첩 사용과 함수형 사고 Map, Filter, Reduce 중첩하여 사용 map, filter, reduce 함수를 커스텀으로 생성하고, 이를 중첩하여 사용 dev-scratch.tistory.com 이제 위 게시물의 가장 상단 복잡했던 코드들을 아래와 같이 작성할 수 있다. 먼저 원본 코드는 아래와 같다. const filter = (f, iter) => { const res = []; for (const a of iter) { i..
턴태
'함수형 프로그래밍' 태그의 글 목록 (3 Page)