갈루아의 반서재



하스켈은 순수 함수형 프로그램밍 언어이다.

1. 순수 함수형 프로그래밍 언어는 어떤 작업을 하라고 컴퓨터에게 알려주는 것이 아니라, 그 작업이 무엇인지를 알려준다. 예를 들어 컴퓨터에게 숫자의 팩토리얼은 1부터 그 숫자까지의 모든 정수의 곱이라고 말한다거나, 숫자 리스트의 합은 첫 번째 숫자들의 합을 더한다고 말할 수 있다. 그리고 이러한 작업들은 함수로 표현할 수 있다.

2. 함수형 프로그래밍에서는 변수에 하나의 값을 설정하고 나중에 다른 것으로 설정할 수 없다.

3. 순수 함수형 언어에는 함수는 부작용이 없다. 함수가 할 수 있는 유일한 것은 어떤 것을 계산하여 그 결과를 반환하는 것이다( 참조투명성 : 어떤 함수를 동일한 매개변수로 두 번 호출하면 두 번 모두 동일한 결과를 반환한다는 것이 보장된다는 것 ).

4. 하스켈은 느긋하다. 이는 함수의 결과를 표시할 필요가 있을 때까지 하스켈은 함수를 실행하지 않을 것이라는 의미다. 이것은 참조투명성으로 가능하다. 만약 어떤 함수의 결과가 함수에 주어진 매개변수에만 영향을 받는다는 것을 안다면 그 함수의 결과가 언제 계산되는지는 상관없다.

5. 하스켈은 정적으로 입력된다. 즉 프로그램을 컴파일할 때 컴파일러는 어떤 코드가 숫자인지, 어떤 코드가 문자열인지 알게 된다는 것이다. 정적 타이핑이라는 말은 수많은 에러들이 컴파일 타임에 잡힐 수 있다는 뜻이다.

6. 하스켈은 타입유추(type inference)를 가진 매우 좋은 타입 시스템을 사용한다. 즉, 모든 코드마다 타입을 명확하게 지정할 필요가 없다는 의미다.

7. 하스켈은 우아하고 간결하다. 하스켈은 높은 수준의 개념들을 많이 사용하기 때문에 일반적으로 더 짧게 작성된다.


미란 리포바카 저, <가장 쉬운 하스켈 책> 서문 중에서

가장 쉬운 하스켈 책
국내도서
저자 : 미란 리포바카(Miran Lipovaca) / 황반석역
출판 : 비제이퍼블릭 2014.02.25
상세보기