함수형언어의 장점은?
스프레드쉬트나 SQL은 모두 특정 경우에만 사용하는 언어이다. 함수형언어는 같은 아이디어를 범용 프로그래밍의 영역에 적용한 것이다. 함수형 프로그램이 어떻한 것인지를 살펴보기 위해서, 아래에 퀵-정렬 프로그램을 예시한다. 이들 두 프로그램은 퀵-정렬이라는 방법을 사용해서 배열을 오름차순으로 정리하는 것이다. 첫 프로그램은 Hasekll로 작성하였으며, 두번째는 C로 작성하였다.
Haskell로 작성한 퀵-정렬
qsort [] = []
qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x
where
elts_lt_x = [y | y <- xs, y < x]
elts_greq_x = [y | y <- xs, y >= x]
C로 작성한 퀵-정렬
qsort( a, lo, hi ) int a[], hi, lo;
{
int h, l, p, t;
if (lo < hi) {
l = lo;
h = hi;
p = a[hi];
do {
while ((l < h) && (a[h] <= p))
l = l+1;
while ((h > l) && (a[h] >= p))
h = h-1;
if (l < h) {
t = a[l];
a[l] = a[h];
a[h] = t;
}
} while (l < h);
t = a[l];
a[l] = a[hi];
a[hi] = t;
qsort( a, lo, l-1 );
qsort( a, l+1, hi );
}
}
그러면 Haskell이나 함수형 프로그래맹의 장점은 무엇인지 생각해보자. 함수형 프로그래밍의 상세한 사례에 대해서는,
Why Functional Programming Matters
(http://www.md.chalmers.se/~rjmh/Papers/whyfp.html)
에서 알아볼 수 있다. 위의 논문에 영향을 받은 엣에이로는,
Why Does Haskell Matter
(http://www.haskell.org/complex/why_does_haskell_matter.html)
이 있다.

No comments:
Post a Comment