JS

함수형 프로그래밍 1탄

영프로95 2022. 7. 7. 03:11

순수함수

1. 최대한 지역변수만을 사용해 구현하기

2. 인수로 넘기는 값의 본체까지 수정하지 않기.

3. 매개변수로 넘기는 값이 객체라면 원본 객체에 변이를 일으키지 않기. ( 깊게 복사후 변이 하는 방법이 있다. )

2022.06.30 - [JS] - 올바르게 객체 복사하기

 

올바르게 객체 복사하기

JS 객체를 함수를 통해 넘길때 call by value 형식을 취하기 때문에 메모리의 이점을 노리지 않는 이상 deep copy를 통해 원본객체를 안전하게 복사하는것이 좋다. 스프레드 연산자와 Object.assign 위의 2

youngpro95.tistory.com


고차함수

고차함수는 함수가 다른 함수를 매개변수로 받아 로직을 생성하는 함수를 말한다.

* 함수를 값 자체로 다른 함수에 넘길 수 있는 일급 객체여야만 가능하다.

일급 객체 조건

- 변수나 메서드에 함수를 할당할 수 있어야 합니다.
- 함수 안에 함수를 매개변수로 담을 수 있어야 합니다.
- 함수가 함수를 반환할 수 있어야 합니다.

- map

map이나 filter 등으로 어떤 값 [a]를 받아 새로운 값 [b]를 반환하는 것을 모나드함수라고 합니다.

- call함수

const call = (a,b) => a() + b()

이런식으로 매개변수를 받아 함수의 실행시점을 자유자재로 놓을 수 있습니다.

- 함수를 반환하는 함수

function SayHelloFunction(name){
            return function(){
                alert("Hello " + name + "!");
            };
        }
        SayHelloFunction("영프로")(); // Hello 영프로!

1. 변수를 보호 할 수 있다.

2. 한번에 여러 변수를 선언하고 활용할 수 있다.

 

속편으로 커링함수합성, 모나드, 클로저 를 기술해 보겠습니다.

'JS' 카테고리의 다른 글

함수 표현식과 선언식  (0) 2022.07.15
IIFE  (0) 2022.07.13
Lazy Loading  (0) 2022.07.03
올바르게 객체 복사하기  (2) 2022.06.30
이터러블 이터레이터 제너레이터  (1) 2022.05.22