Haskell (FP101.x) – Chapter 5

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 5 번째 챕터입니다. 키보드를 읽거나 화면에 무엇인가 쓰는 intertactive program 은 side-effect 를 만듭니다. 그런데, 하스켈은 side-effect 가 없지요. 그럼 입출력이 불가능한 것일까요? 당연히 그렇지 않습니다. IO 모나드 를 사용할겁니다. pure expression 부분과 side-effect 를 만들어내는 impure action 을 구분하여 하스켈에서 입출력을 할 수 있습니다. Interactive program … Continue reading Haskell (FP101.x) – Chapter 5

Haskell (FP101.x) – Chapter 4

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 4 번째 챕터입니다.   이번시간엔 모나드를 배웁니다. 네. 올것이 왔습니다. 간단한 파서를 구현하는 것 부터 시작해 보겠습니다. What is a Parser Parser (파서) 란 텍스트 조각을 분석하여 syntaxtic structure 를 만들어 내는 프로그램(코드)를 말합니다. 많은 프로그램들이 자신만의 파서를 가지고 있습니다. GHC 는 haskell , UNIX 는 shell … Continue reading Haskell (FP101.x) – Chapter 4

Haskell (FP101.x) – Chapter 3

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 3 번째 챕터입니다.   하스켈에서 repetition (반복) 은 recursion 을 통해 표현됩니다. 간단한 재귀부터 시작해서 mutual recursion 까지 알아보고, Higher order function (특히 fold) 에 대해 배운 뒤 적용을 위해 church numerals 를 구현해보고, 마지막으로 간단한 문자열 전송기를 모델링 해 보겠습니다. Tail call? recursion 을 주로 사용한다면 … Continue reading Haskell (FP101.x) – Chapter 3

Haskell (FP101.x) – Chapter 2

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 2 번째 챕터입니다.   이번시간엔 list comprehension 을 배웁니다. 수학에서는 집합의 원소를 이용해 새로운 집합을 만들 때 사용하는데요, In mathematics, the comprehension notion can be used to construct new sets from old sets. 비슷하게 하스켈에선 컬렉션에다 사용 할 수 있죠. In Haskell, a similar comprehension notion can … Continue reading Haskell (FP101.x) – Chapter 2

Haskell (FP101.x) – Chapter 1

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 1 번째 챕터입니다. 먼저 이 글은 edx 의 FP101.x (Introduction to Functional Programming) 수업을 기반으로 작성되었음을 알려드립니다. 시작에 앞서서, 하스켈을 설치하려면 Haskell Platform 을 설치하신 후 터미널에서 ghci 를 입력하면 됩니다. 하스켈 플랫폼은 하스켈 구현체로 Glasgow Haskell Compiler, GHC 를 포함하고 있습니다. ghci 를 입력하면 하스켈 인터프리터를 … Continue reading Haskell (FP101.x) – Chapter 1