JavaScript/함수형 프로그래밍과 JavaScript ES6+

go를 사용하여 읽기 좋은 코드로 만들기

느리지만 꾸준하게 2021. 8. 19. 18:45

함수를 위에서 아래로 왼쪽에서 오른쪽으로 평가하면서 연속적으로 함수를 실행하고 이전에 실행된 함수의 결과를 다음함수에게 전달하는 go라는 함수를 만들었기 때문에 아래 코드의 표현을 바꿀 수가 있다.

    const add = (a, b) => a + b;

    log(
        reduce(
            add,
            map(p => p.price,
                filter(p => p.price < 20000, products))));
    console.clear();

go를 이용해서 작성을 하면 products로 시작을 하고 products를 받아서 filter를 하겠다라고 작성을 하고 products를 받아서 map을 하겠다라고 작성을 할 수가 있다. 

<script>
    go(
        products,
        products => filter(p => p.price < 20000, products),
        products => map(p => p.price, products),
    )
</script>

위 코드에서 reduce를 이용해서 log를 찍어보면 결과가 잘 나오게 된다. 처음코드보다 양은 좀 많아졌고 간결하지는 않지만 읽을 때 편해졌다.

products로 시작해서 filter를 하고 그 값을 map을 해서 가격들만 뽑고 뽑은 값을 reduce로 모두 add로 축약해서 그 값을 log로 출력하겠다해서 위에서부터 아래로 읽을 수 있게 표현이 되었다.

<script>
    go(
        products,
        products => filter(p => p.price < 20000, products),
        products => map(p => p.price, products),
        prices => reduce(add, prices),
        log);
</script>

 

 

<출처 : 유인동 함수형 프로그래밍과 JavaScript ES6+>

https://www.inflearn.com/course/functional-es6/dashboard

 

함수형 프로그래밍과 JavaScript ES6+ - 인프런 | 강의

ES6+와 함수형 프로그래밍을 배울 수 있는 강의입니다. 이 강좌에서는 ES6+의 이터러블/이터레이터/제너레이터 프로토콜을 상세히 다루고 응용합니다. 이터러블을 기반으로한 함수형 프로그래밍,

www.inflearn.com