Monday, May 18, 2009

About Haskell (A Short Introduction to Haskell) 번역 (4)

1. 간결함
함수형프로그램은 명령형의 그것에 비해서 매우 간결해지는 경향이 있습니다. 퀵-정렬을 보면 분명합니다. 일반적으로 함수형 프로그램은 (2배에서 10배) 짧은 프로그램이 됩니다.

2. 이해의 용이성
함수형 프로그램은 많은 경우 이해하기 쉽습니다. Haskell의 지식이나, 퀵-정렬의 지식이 전혀 없어도 프로그램을 이해할 수 있습니다. C의 프로그램에서는 그렇지 못합니다. C에서는 이해하는데 많은 시간이 걸리며, 조금이라도 잘못하면 옳바르지 않은 프로그램을 만들 수 있습니다.

3. core-dump가 없다
Haskell을 시작으로 하는 많은 함수형언어들은 type 체크가 강력해서, 프로그래머가 쉽게 저지를 수 있는 잘못들을 컴파일시에 수정할 수 있습니다. 특히 이것은 core-dump가 없다는 것을 의미합니다. 이것은 단순하게 정수 포인터를 다루는 것 등이 없기 때문입니다.

4. 코드의 재이용
물론 강력한 type 처크는 Ada나 Pascal과 같은 많은 명령형언어에서도 이용할 수 있습니다. 그러나 Haskell의 type 시스템은, 예를 들면 Pascal과 비교해서, 자유도가 높습니다. 이는 다형성을 다룰 수 있기 때문입니다. 예를 들면 위의 퀵-정렬에서 프로그램은 정수 리스트만을 정렬하는 것이나닌, 부동소수점의 리스트나 문자 리스트, 리스트의 리스트등, < 과 > 연산자로 비교할 수 있는 요소를 가지는 어떠한 리스트도 정렬할 수 있습니다. 이에 반해 C언어의 경우에는 정수의 배열에만 한해서 사용할 수 있습니다.
다형성은 재이용성을 높여줍니다.

No comments: