개발 Flashcards
1
Q
함수형 프로그래밍 언어
A
[정의] 객체자향 언어의 한계 극복하기 위해 자료처리의 수학적 함수의 계산 기반 프로그래밍 패러다임
* 객체지향의 함수 비일관성, 객체간 의존성, 객체내 상태변화 제어 어려움 개선위해 활용
[기법(특성)]
- 람다 대수 표현 : 함수의 정의 표현, 귀납적 함수 추상화 ( (x,y)->x+y )
- 순수 함수 : 최소한의 입력/출력으로 구성 ( fun add(a,b) { return a+b } )
- 비상태, 불변성 : 데이터의 변하지 않는 불변성 유지 ( return {copy.persion} )
- 1급 객체 : 함수를 파라메터로 전달 가능 ( function call ( validation(a) ){}; )
- 고계 함수 : 반환하는 값이 함수인 함수 ( function calc (int, function(int,int) )
- 선언형 함수 : What에 주목 특징 ( num * mpltiplier() )
[대표적 언어]
- Haskell : 지연 계산 기반 언어, 병렬 처리 적합 (Eval 모나드, Cloud Haskell)
- Scala : 자바 가상 머신 실행, (비동기, 메시지 전달방식)
- Erlnag : 실시간 시스템을 위한 함수형 언어 (에릭슨 개발)
* 낮은 코드 복잡도 및 멀티스레딩 안전성으로 병렬 처리등 다야한 분야에서 활용