[Web Development] 함수형 프로그래밍이란?

YounGyeom·2021년 5월 23일
0

Web Development

목록 보기
4/4

함수형 프로그래밍(Function Programming) 이란?

값의 연산 및 결과 도출 중심으로 코드작성이 이루어진다. 함수 내부에서 인자로 받은 값을 별도로 저장하거나 하지 않고, 간결한 과정으로 처리하고 매핑하는데에 주 목적을 둔다.

함수형 프로그래밍의 특징

1. 순수함수

함수에서 외부의 상태값을 참조하거나 외부의 상태를 변경하는 것은 순수함수라고 볼 수 없다. 동일한 인자를 넣었을 때 항상 동일한 결과값을 반환하고 언제 선언이 되었는지 외부에 전혀 영향을 받지 않도록 작성해야 한다.

2. 비상태 불변성 유지

전달된 데이터를 변경하는 것이 아니라 새로운 버전의, 새로운 오브젝트를 만들어서 결과값으로 전달해야 한다.
함수형 프로그래밍에서는 외부의 상태나 함수에 인자로 전달된 데이터의 상태를 변경하지 않음으로써 side effect를 만들지 않음으로 불변성을 유지하지 때문에 여러가지 동시다발적인 멀티쓰레딩 환경에서도 안정적으로 동작할 수 있다.

3. expressions

if나 switch 같은 문장을 사용하지 않고 프로그래밍 해야한다.

4. first class & higher-order functions

함수를 변수에 할당하거나 함수에 인자로 전달하거나 리턴하는 등의 일들을 할 수 있는 firss class 특징 그리고 함수 자체를 인자로 전달하거나 함수에서 또다른 함수를 리턴하는 higher-order functions 두가지 속성을 가지고 있어야 한다.

Reference

함수형프로그래밍,객체지향프로그래밍 특징

함수형프로그래밍,객체지향프로그래밍 차이점

profile
keep it fresh!

0개의 댓글