함수형 프로그래밍이란 무엇인가
함수형 언어/프로그래밍의 느낌을 알기 전, 먼저 수학적 함수를 알고 가야 한다.
수학적 함수는 입력 값에 따라 출력 값을 만들어내는 블랙 박스와 같다
-
수학적 함수의 특징
- 입력 값에 따라 출력 값이 결정 된다
- 수학적 함수와 프로그래밍에서의 수학적 함수의 개념은 다르다
-
[[함수형 프로그래밍의 본질]]
- 함수형 프로그래밍 언어는 프로그램을 수학적 함수의 조합으로 본다
- 프로그램의 동작을 즉 수학적 함수로 표현한다
- 매개 변수로 값을 입력 받은 뒤 적절하게 처리하여 값을 출력한다
함수형 언어의 특징
- 명령형 언어와의 차이점
- 함수형 언어는 변수를 할당 할 때, 공간을 새로 할당 하지 않고, 순수 계산에 의존 합니다
- 명령형 언어는 메모리 공간에 값을 계속 바꾸며 상태를 추적합니다
상태의 개념이 없으며, 따라 저장문도 필요하지 않다
함수형 언어는 상태 변화가 없으며 중간 상태를 저장하는 문장이 필요하지 않습니다
대신 함수형 언어에서는 입력에 의존하여 값을 계산하고, 매개 변수를 통해 중간 상태 값을 추적합니다
루프의 기능은 재귀에 의하여 표현 된다
- 함수형 언어에서는 재귀를 사용하여 루프의 기능을 표현한다
- 특히 꼬리 재귀(tail recursion)를 사용하여 메모리의 효율을 높입니다
- 꼬리 재귀를 사용하지 않을 경우 메모리에 콜 스택이 쌓여 메모리가 부족한 현상이 발생 할 수 있음
- 꼬리 재귀 여부는 상태를 어떻게 받는지를 통해 알 수 있따
- 이를 통해 상태 추적을 매개 변수에 의존하게 됩니다
순수 함수
- 동일한 입력에 대해 항상 동일한 출력을 반환하는 함수
- 스레드로부터 안전하며, 병렬로 실행 할 수 있다.
익명 함수
- 간단한 함수가 짧은 시간 동안 필요하고 별도의 함수를 정의할 필요가 없는 상황에 유용
- 코드를 단순화하고, 특정 프로그래밍 작업에 맞는 함수를 생성하기 위한 강력하고 유연한 도구 제공
고차 함수
- 하나 이상의 함수를 인수로 사용하거나 함수를 결과로 반환하는 함수
- 모듈화 되고 유연하며 재사용 가능한 코드를 만들 수 있다
레퍼런스
- [[함수형 프로그래밍의 개요 - 원본]]
728x90
'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글
Scheme 기본 문법 (0) | 2023.04.04 |
---|---|
람다 대수(Lamda calcuus)란 무엇인가 (0) | 2023.03.29 |
프로그래밍 언어의 변천사 (0) | 2023.03.27 |
명령형 언어 (0) | 2023.03.26 |
하이브리드 기법이란? (0) | 2023.03.26 |