인프런 커뮤니티 질문&답변

ReKoding님의 프로필 이미지
ReKoding

작성한 질문수

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

go, pipe 함수 관련하여 질문 드립니다.

해결된 질문

작성

·

372

1

안녕하세요 선생님 강의도 여러번 돌려보고 혼자서 이해해보려고 했는데, 도저히 이해가 되지

않아 질문 드립니다.

혹시 아래 total_quantity 함수와 total_price 함수를 작성하는거 까지는 이해가 가는데,

그 후에 products => go(products, 부분을 빼고 pipe 함수로 감싸는 부분이 이해가 되지 않습니다. pipe, go에 대해 제가 아직 미숙한거 같긴한데.. pipe함수가 함수를 받아 두고 그 이후에 다시 함수가 실행되면 받아둔 함수를 이후에 받은 매개변수를 넣어 실행하는 함수라고 생각을 했는데요. 혹시 해당 부분에서 pipe를 사용하신 이유가 있으실까요?? 어떻게 products => go(products,부분만 보고 바로 pipe 함수를 사용해도 된다고 생각하신건가요??

 

추가로, total_price에서 products => 부분을 지우고

go(products,

map(p=>p.price * p.quantity),

reduce((a,b)=>a+b)) 로 작성해도 문제 없이 값이 나타나는거 같은데요 혹시 products를

미리 받은 이유가 있을까요??

 

제가 너무 이해가 미숙하여 질문도 미숙할 수 있겠지만..확인 한번 부탁 드리겠습니다!

const total_quantity = products => go(products,
            map(p => p.quantity),
            reduce((a,b)=> a + b));

        console.log(total_quantity(products))

const total_price = products => go(products,
        map(p=>p.price * p.quantity),
        reduce((a,b)=>a+b));

        console.log(total_price(products))

답변 1

1

유인동님의 프로필 이미지
유인동
지식공유자

안녕하세요!

받은 인자를 그대로 전달만하고 있기 때문에, pipe로 변경해도 된다고 생각했습니다 :)

ReKoding님의 프로필 이미지
ReKoding
질문자

감사합니다 선생님 이해되었습니다 !

ReKoding님의 프로필 이미지
ReKoding

작성한 질문수

질문하기