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

오태은님의 프로필 이미지
오태은

작성한 질문수

자바스크립트로 알아보는 함수형 프로그래밍 (ES5)

일급함수, add_maker, 함수로 함수 실행하기

순수함수에 대해서 질문있습니다.

작성

·

352

0

안녕하세요 유인동님! 순수함수 관련 질문이 있습니다.

<질문1>

```js

const addMaker = (a) => {

    // (*)

    return (b) => { // ....add

        return a + b;

    }

}

```

 

위 코드의 (*) 부분에서 인자 a를 변경하고 있지 않기 때문에 add이 순수함수라고 하셨는데, (*)에서 a를 변경하지만 이후 add 함수가 호출되는 상황에서는 변경되지 않는다는 것이 보장되어도 순수하지 않을걸까요??

 

가령 다음과 같은 경우에 순수함수를 리턴한다고 보기 어려운 것인지 궁금합니다.

```js

const addMakerInMod3 = (a) => {

    a %= 3;

    return (b) => { // ....add

        return a + b;

    }

}

```

 

<질문2>

모듈 코드 상에 변수를 선언하고 함수 안에서 이를 참조해도 이 변수를 변경하지 않는다는게 보장되면 순수함수라고 부를 수 있을까요?

```js

// module.js

const a = 10;

const add10 = (b) => a +b;

```

답변 1

0

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

네 이해하신게 맞습니다 :)

오태은님의 프로필 이미지
오태은

작성한 질문수

질문하기