728x90
함수형 프로그래밍은 실행할 일련의 함수로 문제를 구성하는 작업으로 각 함수에 대한 입력과 각 함수가 반환하는 항목을 신중하게 정의한다
함수형 방법
특성 | 명령형 방법 | 함수형 방법 |
중점 | 작업을 수행하는 방법(알고리즘)과 상태의 변경을 추적하는 방법 | 원하는 정보와 필요한 변환 |
상태 변경 | 중요 | 존재하지 않음 |
실행 순서 | 중요 | 중요도가 낮음 |
주요 흐름 제어 | 루프, 조건 및 함수(메서드) 호출 | 재귀를 비롯한 함수 호출 |
주요 조작 단위 | 클래스나 구조체의 인스턴스 | first-class 개체와 데이터 컬렉션인 함수 |
함수 표인터가 있는 언어로 함수형 프로그래밍을 수행할 수 있다 LINQ 기술은 선언적 함수형 프로그래밍의 형태이다
함수형 프로그래밍은 순수 함수 변환을 직접 지원하는 프로그래밍 방법이다
작성하기 어렵다는 단점이 있으나 람다식 및 형식 유추와 같은 새로운 언어 구문을 사용하면 기능 프로그래밍이 훨씬 쉽고 생산성이 향상된다. (리펙토링에 용이)
* 람다식 - 대리자 형식이 예상되는 곳에서 항상 사용할 수 있는 인라인 익명 함수
* 형식 유추 (암시적 형식 지정) - 명시적 형식 선언이 없는 경우 컴파일러에서 변수의 형식을 결정하도록 하는 기능
728x90
'c#' 카테고리의 다른 글
[C#] Interface (0) | 2023.01.05 |
---|---|
[C#] 순수 함수 (0) | 2023.01.04 |
[C#] await 연산자 (0) | 2023.01.04 |
[C#] operator-overloading 연산자 오버로드 (0) | 2023.01.04 |
[Console]Keypress (0) | 2022.11.09 |