Functional Programming in Scala – 2

Coursera 의 Functional Programming In Scala 수업 중 2 번째 챕터입니다. 2.1 Higher-Order Functions Higher-Order Functions Functional PL 에서는 함수를 first-class 로 다루는데, 이는 함수를 파라미터로 넘기거나 결과로 리턴할 수 있다는 소리다. 이렇게 함수를 파라미터로 받거나, 혹은 함수를 리턴하는 함수를 Higher order functions 라 부른다. Function Types type A => B is the type of a … Continue reading Functional Programming in Scala – 2

Functional Programming in Scala – 1

Coursera 의 Functional Programming In Scala 수업 중 1 번째 챕터입니다. h3 id="1-1-programming-paradigms">1.1 Programming Paradigms Imperative Programming modifying mutable variables using assignment and control str such as if-then-else, loop break, continue, return 절차적인 프로그래밍은 폰 노이만 구조랑 비슷한데, Mutable var = memory cells variable deferences = load instructions var assignment = store instruction control structure = … Continue reading Functional Programming in Scala – 1

Haskell (FP101.x) – Poor Man’s Concurrency Monad

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 10 번째 챕터입니다. FP 101x 의 최종 보스입니다. Rose Tree 는 거들뿐 Koen Claessen 가 1999년에 발표한 Poor Man’s Concurrenc Monad 를 배경으로 하는 과제인데, 언어에 primitive 추가 없이 concurrency 를 모델링 하는 방법을 보여줍니다. Continuation 먼저 용어부터 정의하고 가면, continuation 은 실행 가능한 computation 입니다. 필요할 … Continue reading Haskell (FP101.x) – Poor Man’s Concurrency Monad

Haskell (FP101.x) – Chapter 9

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 9 번째 챕터입니다. 이번시간엔 함수형 프로그래밍에서 property 를 증명하는 방법인 induction 에 대해 배워보고, 하스켈에서 알고리즘의 성능이 어떨까에 대해 좀 논의해 보겠습니다. 마지막엔 Rose Tree 를 구현하면서 Functor, Monoid, Foldable 등에 대해 좀 알아봅시다. 수학에서 다음 두 식은 똑같습니다. xz + yz = (x + y)z 근데, … Continue reading Haskell (FP101.x) – Chapter 9

Haskell (FP101.x) – Chapter 8

edx 의 FP101.x (Introduction to Functional Programming) 수업 중 8 번째 챕터입니다. 고차함수가 있는 다른언어와 비교했을 때 하스켈은 무슨 특징이 있을까요? 하스켈은 expression 을 평가하기 위해 디폴트로 lazy evaluation 을 사용한다는 점에서 다른 언어들과 다릅니다. 이번시간엔 evaluation 의 개념부터 시작해서, 다양한 종류의 evaluation 전략들을 살펴보겠습니다. Evaluation Avoid doing unnecessay evaluation Allows programs to be more modular … Continue reading Haskell (FP101.x) – Chapter 8