inflearn logo
강의

Course

Instructor

Functional Programming and JavaScript ES6+

pipe

pipe함수

531

yoohwanjoo5502

4 asked

1

안녕하세요.

f(0) 이게 초기값으로 할당할 수 있는 이유를 생각해봤는데요

이해한대로 말해보자면

 

pipe함수가 리턴하는 익명함수를 변수 f가 할당받고

이제 pipe함수가 리턴한 익명함수는 pipe함수의 렉시컬 스코프를 참조할 수 있고 중간다리 역할을 합니다.

즉 익명함수를 할당받은 f는 클로저입니다.

 

그럼 f(0) => go (a: 0 , ...fs) 이런식으로 됩니다

f는 상위 스코프를 기억할 수 있는 클로저이니까

(익명함수를 f로 바꿔 표현한것입니다. 정확히 클로저는 익명함수입니다.)

스코프 체인을통해 ...fs를 참조할 수 있습니다....

가 제가 이해한건데 맞을까요??

 

 

 

javascript 함수형-프로그래밍

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
한덕수님의 질문에 대해 답변 드리겠습니다.

말씀하신 내용이 함수형 프로그래밍에서의 클로저와 pipe 함수에 대한 이해가 잘 정리된 것으로 보입니다.

pipe 함수는 여러 개의 함수를 인자로 받아서 이들을 순차적으로 실행할 수 있는 새로운 함수를 반환합니다.
반환된 함수는 클로저를 형성하여 pipe에 전달된 함수들인 ...fs를 기억하게 됩니다.
이후 변수 f가 이 클로저를 참조하게 되어 f(0)을 실행할 때, a:0으로 초기값을 설정하고 ...fs를 통해 전달된 함수들을 차례대로 적용할 수 있습니다.

따라서, 한덕수님께서 이해하신 것처럼 f(0)을 실행했을 때, f는 클로저를 통해 ...fs에 담긴 함수들을 참조하여 순차적으로 함수를 실행하는 것이 맞습니다.

클로저는 자신이 생성될 때의 환경을 ‘기억’하는 함수로, 해당 함수가 선언될 때의 렉시컬 스코프에 접근할 수 있고 해당 범위의 변수를 참조할 수 있기 때문에 가능한 동작입니다.

질문에 대한 답이 되었길 바랍니다. 추가 궁금한 사항이 있으시면 언제든지 문의하시기 바랍니다.

프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다

1

111

1

함수형 프로그래밍 심화 강의 자료 추천

0

72

2

함수형 자바스크립트 프로그래밍 책

0

54

1

filter가 아무것도 걸러내지 못하는 경우

0

114

1

take 함수의 성능적면에서의 이점

1

463

1

Identity 함수

0

450

1

함수형 프로그래밍이란

0

832

1

reduce 예제 코드 제안!

0

405

1

fxts를 배워보려고 합니다.

1

537

1

flatMap 관련 질문드립니다~

1

444

1

다용성이 높은 L.flatMap

0

358

1

변수에 재 할당 금지~

0

540

1

DevTools라고 옆에 결과 확인하는거 어떻게 하나요?

0

483

2

소요시간에 관해서 질문드립니다

1

458

1

join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!

0

465

2

reduce에 L.range를 사용할 때

0

527

2

[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유

3

739

2

제가 이해한 C.Reduce와 Reduce의 동작 차이 정리

2

787

3

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

1

499

1

안녕하세요 강사님!

0

380

2

fxts에 go가 없는 이유?

0

840

1

비동기 관련 질문입니다!

0

462

1

질문 있습니다.

0

517

1

강의 중 혼란스러운 부분이 생겨 질문 드립니다.

0

546

2