Haskell #1 (Introduction)

--

개인적으로 함수형 프로그래밍을 이해하기 위해서 순수한 함수형 언어인 Haskell을 공부하며 정리한 내용입니다. 코끼리 책으로 유명한 Learn you a Haskell for Great Good!을 참고하였습니다.

Ref: #1. Introduction

Why Haskell for FP?

하스켈은 순수한 함수형 언어로서 C, Java와 같은 명령형 언어를 다루던 프로그래머가 함수형 프로그래밍을 익히기 최적화 되어있습니다. 하스켈은 Learning Curve가 높은 언어지만 매우 재미있고, 프로그래머 어쩔 수 없이 다르게 생각하도록 만드는 장점이 있습니다.

What’s Haskell?

하스켈은 순수한 함수형 언어 입니다. 명령형 언어는 해야되는 일을 프로그래머가 나열하면 컴퓨터는 그대로 실행합니다. 그리고 실행되는 과정에서 상태가 변경될 수 있습니다. 함수형 언어에서는 해야되는 일을 알려줄 필요가 없습니다. 그냥 컴퓨터에게 무엇인지를 알려주면 됩니다. 그리고 이미 알려준 무엇은 변경될 수 없습니다.(Immutable) 함수형 언어에서 선언한 함수는 항상 같은 입력에 같은 결과를 리턴합니다.(Referencial Transparency)

하스켈은 게으른 언어 입니다.(Lazy) 하스켈의 함수는 결과를 보여주기전까진 실행하지 않습니다. 따라서 필요한 데이터를 필요할때 효율적인 방법으로 보여줍니다.

하스켈은 정적 타이핑 언어 입니다.(Statically Typed) 프로그램을 컴파일하면 컴파일러는 이미 코드에서 사용된 타입들을 알고 있어서 컴파일 타임에 발생 가능한 많은 에러를 잡을 수 있습니다.(Type Inference) 타입 추론이 가능하면 모든 코드에 타입을 명시하지 않아도 되고, 코드를 좀 더 일반적으로 사용할 수 있다는 장점이 있습니다.

하스켈은 코드가 우아하고 간결합니다. 일반적으로 명령형 언어도 보다 훨씬 짧은 코드로 동일한 기능을 할 수 있습니다. 이것은 에러가 발생할 가능성이 적고, 유지보수할 코드가 줄어 드는 것을 의미합니다.

--

--