Functional Programming

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS

FunctionalProgramming


'함수형프로그래밍'으로 흔히... 프로그램을 수학에서와 유사한 함수의 개념을 사용하여 구성하는 방법. CLanguage, CppLanguage, JavaLanguageImperativeProgramming이 단순히 실행하고자 하는 명령어의 순서에 의거한 나열이라면, 함수형프로그래밍은 프로그램의 코드를 선언적으로 구성할 수 있게 해준다. 프로그램을 작성할 때에 컴퓨터보다 사람이 이해할 수 있도록 그 로직에 집중할 수 있도록 표현력에 집중하였다.

LispLanguage, OcamlLanguage, HaskellLanguage등 유명한 함수형언어들이 있으며, Microsoft의 닷넷환경을 위한 FSharpLanguage등등 의외로 많고, 많이질 전망이다. ;-)

함수형프로그래밍언어들의 공통적인 특징으로는 부수효과(SideEffect)가 없다. 이는 대입연산, 입출력과 같은 부수효과를 관리할 수 있음을 뜻한다. HaskellLanguage에서의 Monad 등의 개념을 도입하여 부수효과가 필요한 부분과 그렇지 않은 부분을 구분하여 프로그램 할 수 있으며, 이로 인해 각각의 함수들은 그 입출력이 보장 받으므로 문제를 최소화할 수 있다.

함수를 FirstOrderValue로서 취급하여 다른 값들과 동일하게 다룰 수 있으며, 최근의 언어들에서 유행하고 있는 Closure나 CppLanguageFunctorClass들처럼 자료구조뿐만이 아니라 알고리즘 또한 재사용할 수 있으며, 훨씬 유연한 프로그래밍을 가능하게 한다.

종종 DomainSpecificLanguage 분류에 속하거나 SqlLanguage나 심지어 스프레드시트 안에서의 표현식도 함수형언어로 볼 수 있다고도 한다.



프로그램을 작성할 때에 컴퓨터보다 사람이 이해할 수 있도록 그 로직에 집중할 수 있도록 표현력에 집중하였다.를 좀 더 자연스럽게 바꾸려면 어떻게 해야 할까요? -- 세브 2007-01-20 22:33:06
제가 생각할때는 블럭지정하고서 ==... 쿨럭... 죄송합니다. 전 딱히 땡기는게 없는데. 좋은표현 있으시면 수정해주세요~/ -- ageldama 2007-01-27 03:29:38

"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>