본문 바로가기
용어와 개념들

함수형 프로그래밍이란? 논리형과 절차형 언어와 구분

by 행운가득 케이티 2024. 2. 18.
반응형

 

 

 

함수형 프로그래밍 개념 바로 알기

함수형 프로그래밍 뜻과 개념에 대해서는 먼저 아래 버튼을 통해서 내용을 먼저 바로 확인해보세요.

 

 

 

 

 

 

 

함수형 프로그래밍란

 

 

함수형 프로그래밍 개념 세부 내용

함수형 프로그래밍 개념
함수형 프로그래밍 개념

 

 

함수형 프로그래밍 개념에 대해서 알아보아요.

 

함수형 프로그래밍(Functional Programming)은 순수함수들을 이용하여 프로그램을 하는 프로그래밍 패러다임 중 하나입니다. 함수형 프로그래밍에서는 수학적 함수 계산을 이용하며 선언형 프로그래밍 방식입니다.

 

선언형은 무엇을 풀지에 더 집중하는 구조입니다. 함수형 프로그래밍에서 가장 중요한 특징은 순수함수들의 조합을 이용한다는 점입니다. 여러 개의 순수 함수들을 조합하여 프로그래밍을 하는 구조입니다. 순수함수란 입력 값을 받아 출력만을 수행하는 것입니다.

 

 

 

 

 

함수형 프로그래밍은 순수함수를 이용한다는 점과 순수 함수들의 조합을 사용한다는 점, 불변성, 함수 재사용, 커리의 특징이 있습니다. 함수형 프로그래밍에서는 고차 함수를사용합니다. 고차 함수란 함수 단위로 함수를 인자로 받거나 함수를 결과로 반환할 수 있는 함수입니다. 이러한 구조로 인해 함수형 프로그래밍은 소스코드가 더 간결해지고 중복을 피할 수 있게 됩니다. 함수형 프로그래밍은 논리형 프로그래밍과 구분됩니다.

 

논리형 프로그래밍은 논리 문장을 이용하여 프로그래밍을 하는 구조를 가진 프로그래밍 방식입니다. 논리형 언어의 경우 논리 문장을 이용하고 기호 논리형태와 규칙을 사용하며 선언형 프로그래밍의 패러다임을 따릅니다. 함수형 프로그래밍은 절차형 프로그래밍과도 다릅니다. 절차적 프로그래밍은 처리 순서와 절차를 중시하여 기술하는 방식입니다.

 

 

 


 

 

☞ 함수형 프로그래밍 뜻과 개념 자세히 보러 가기 >

 

 


 

 

함수형 프로그래밍은 프로그램을 작성하는 패러다임 중 하나로, 계산을 수학적 함수의 평가로 취급하는 것입니다.

 

 

 

 

함수형 프로그래밍의 핵심 개념은 다음과 같습니다.

 

1. 순수 함수 (Pure Functions):

 

순수 함수는 외부 상태를 변경하지 않고, 같은 입력에 대해 항상 같은 출력을 반환합니다. 이것은 부작용(side effect)이 없는 함수입니다. 이러한 함수는 프로그램의 예측 가능성을 높이고 테스트와 디버깅을 쉽게 만듭니다.

 

2. 불변성 (Immutability):

 

데이터 구조를 변경할 수 없게 만들면 예상치 못한 부작용을 방지할 수 있습니다. 불변성은 객체의 상태가 변하지 않는 것을 의미하며, 함수형 프로그래밍에서는 변경 불가능한 데이터 구조를 선호합니다.

 

3. 함수와 일급 객체 (First-class Functions):

 

함수를 변수에 할당하거나 함수의 인자로 전달할 수 있으며, 함수를 반환할 수 있는 언어 기능을 의미합니다. 이것은 함수를 다른 데이터 유형과 마찬가지로 다룰 수 있다는 것을 의미합니다.

 

4. 고차 함수 (Higher-order Functions):

 

다른 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다. 고차 함수를 사용하면 코드를 더 추상화하고 일반화할 수 있습니다.

 

5. 커링 (Currying):

 

여러 개의 인자를 받는 함수를 호출할 때, 각 인자를 받는 새로운 함수를 리턴하는 기법입니다. 이를 통해 함수를 부분적으로 적용하고 재사용성을 높일 수 있습니다.

 

6. 재귀 (Recursion):

 

함수가 자신을 호출하여 반복적인 작업을 수행하는 것입니다. 재귀는 많은 함수형 언어에서 반복 대신에 사용되는 주요한 제어 구조입니다.

 

7. 함수 조합 (Function Composition):

 

두 개 이상의 함수를 조합하여 새로운 함수를 생성하는 것입니다. 함수 조합은 코드의 재사용성과 가독성을 향상시키는데 도움이 됩니다. 함수형 프로그래밍은 이러한 개념들을 통해 코드를 간결하고 가독성이 높으며, 동시에 오류를 줄이고 병렬화를 용이하게 합니다.

 

함수형 프로그래밍은 대부분의 프로그래밍 언어에서 지원되지만, Haskell, Scala, Clojure 등의 언어는 이러한 개념들을 특히 강조하는 언어입니다.

 

 

 

함수형 프로그래밍 개념
함수형 프로그래밍 개념

반응형