1962년 토마스 쿤의 저서 <과학혁명의 구조>에서는 패러다임을 아래와 같은 과학적 성과로 기술하고 있다. 그리고 그러한 성과의 예로, 뉴튼의 프린키피아, 라부아지에의 화학 등을 들고 있다.
• "...sufficiently open-ended to leave all sorts of problems for the redefined group of practitioners to resolve."
패러다임은 문제를 이해하고 푸는데 필요한 개념적 프레임워크를 제공해준다. 그리고 패러다임은 문제를 해결하는데 필요한 관점, 용어, 그리고 일련의 기술을 가지고 있다.
여기서 기억해야할 점은 프로그래밍 패러다임이 풀이를 시도해야할 문제란 것이 도대체 무엇이냐는 점이다.
<패러다임의 영향>
우리가 어떤 프로그래밍 패러다임을 알고 있느냐에 따라 문제 접근 방식이 달라진다. 만약 절차적 패러다임을 사용한다면, 먼저 연산을 일련의 단계로 나누는 것 부터 생각할 것이고, 객체 지향 패러다임을 사용한다면, 문제를 객체의 모음으로 모델링하여 그들간의 상호작용을 고려하는 것을 먼저 생각하게 될 것이다.
<기능적 프로그래밍 패러다임>
기능적 패러다임의 주요한 특징은 순수 수학 함수처럼 함수를 작성하는데 있다.
순수 수학적 함수:
• 입력값에 대해 항상 같은 값을 반환한다
• 부작용이 없다
• 더욱 강력한 함수를 만들기 위해 무식하게 결합이 가능하다
<기능적 패러다임의 다른 특징들>
• 값은 변하지 않고, 대신 다수의 새로운 값을 생성한다.
• 반복 대신에 재귀 사용
• 함수는 값이다. 함수 역시 데이터 구조에 넣을 수 있고, 다른 함수로 전달이 가능하며, 함수로부터 값을 반환할 수 있다.
'프로그래밍 Programming' 카테고리의 다른 글
Functional Programming with Haskell - Function types (0) | 2018.03.24 |
---|---|
Functional Programming with Haskell - Calling functions (0) | 2018.03.24 |
Functional Programming with Haskell - Interacting with Haskell (0) | 2018.03.22 |
Haskell_007 Where (0) | 2018.03.17 |
Haskell Operators and other Lexical Notation (0) | 2018.03.17 |