이 멱집합 생성 함수는 어떻게 동작하는거죠?
Elm 강의를 보고 있는데 멱집합을 생성하는 함수가 과제로 나왔다. 한참을 고민하다가 결국 검색을 해보게 되었다. 반성하는 차원에서 How is this powerset generating function working?를 짧게 번역했다. 수학공부 부지런히...
Elm 강의를 보고 있는데 멱집합을 생성하는 함수가 과제로 나왔다. 한참을 고민하다가 결국 검색을 해보게 되었다. 반성하는 차원에서 How is this powerset generating function working?를 짧게 번역했다. 수학공부 부지런히...
Intro 이번시간엔 함수형 프로그래밍에서 property 를 증명하는 방법인 induction 에 대해 배워보고, 하스켈에서 알고리즘의 성능이 어떨까에 대해 좀 논의해 보겠습니다. 마지막엔 Rose Tree 를 구현하면서 Function, Monoid, Foldable...
FP 101x 의 최종 보스입니다. Rose Tree 는 거들뿐 Koen Claessen 가 1999년에 발표한 Poor Man's Concurrenc Monad 를 배경으로 하는 과제인데, 언어에 primitive 추가 없이 concurrency 를...
고차함수가 있는 다른언어와 비교했을 때 하스켈은 무슨 특징이 있을까요? 하스켈은 expression 을 평가하기 위해 디폴트로 lazy evaluation 을 사용한다는 점에서 다른 언어들과 다릅니다. 이번시간엔 evaluation 의 개념부터 시작해서,...
the countdown problem 은 프랑스 퀴즈 프로그램에서 유래한 문제입니다. 주어진 양수를 단 한번씩만 이용하여 특정 숫자를 만드는 문제입니다. 사용가능한 연산자는 +, *, -, / 입니다. 예를 들어 (25...
이번시간엔 어떻게 type 과 class 를 정의하는지 배울겁니다. 이렇게 commonality 를 추출해서 type 과 class 로 만듦으로써 작업의 양을 줄일 수 있습니다. 이 과정을 추상화라 부르기도 합니다. 마지막엔...
키보드를 읽거나 화면에 무엇인가 쓰는 intertactive program 은 side-effect 를 만듭니다. 그런데, 하스켈은 side-effect 가 없지요. 그럼 입출력이 불가능한 것일까요? 당연히 그렇지 않습니다. IO 모나드 를 사용할겁니다. pure...
이번시간엔 모나드를 배웁니다. 네. 올것이 왔습니다. 간단한 파서를 구현하는 것 부터 시작해 보겠습니다. What is a Parser Parser (파서) 란 텍스트 조각을 분석하여 syntaxtic structure 를 만들어 내는...
하스켈에서 repetition (반복) 은 recursion 을 통해 표현됩니다. 간단한 재귀부터 시작해서 mutual recursion 까지 알아보고, Higher order function (특히 fold) 에 대해 배운 뒤 적용을 위해 church numerals...
이번시간엔 list comprehension 을 배웁니다. 수학에서는 집합의 원소를 이용해 새로운 집합을 만들 때 사용하는데요, In mathematics, the comprehension notion can be used to construct new sets from old...
먼저 이 글은 edx 의 FP101.x (Introduction to Functional Programming) 수업을 기반으로 작성되었음을 알려드립니다. 시작에 앞서서, 하스켈을 설치하려면 Haskell Platform 을 설치하신 후 터미널에서 ghci 를 입력하면 됩니다....