Reactive Programming 1, Monads



Comment

What is Reactive Programming? reactive 란 뜻은 React to events (event-driven) React to load (scalable) React to failures (resilient) React to users (responsive) Event-driven event-driven 을 통해 scalable, resilient 해질 수 있고, 이 3가지를 통해 responsive 한 서비스를 만들 수 있다. 옛날에는 시스템이 multi-threaded 로 구성되어 shared, synchronized state 를…

Read this article

Functional Programming in Scala, Chapter 7



Comment

7주차에 걸친 대장정의 마지막이다. 이번시간에는 stream, lazy evaluation 에 대해 배우고 이걸 이용해 길이가 무한인 컬렉션을 만들어 보기도 하고 계산을 늦추는 것을 다양한 예제에 적용해 본다. Structural Induction on Trees 지난번엔 함수가 올바르게 동작함을 증명하기 위해 induction 을 사용했었는데 이번시간엔 tree 에 대해 induction 을 사용한다. 모든 트리 t 에…

Read this article

Functional Programming in Scala, Chapter 6



Comment

지난 시간에는 referential transparency (참조투명성) 과 함수형 언어에서의 귀납법인 structural induction 에 대해서 배우고, 몇 개의 예제를 증명했었다. 이번 시간에는 스칼라의 컬렉션인 Seq, Set, Map 을 알아보고 마지막 챕터에서는 여기에 higher-order function 을 더해 미친듯한 표현력을 가진 코드를 작성해 본다. one-liner 의 절정을 보여주시는 교수님 (번역이 서툴러 어중간한 의역을 하느니…

Read this article

Functional Programming in Scala, Chapter 5



Comment

지난주엔 Scala 가 리스코프 치환 원칙 을 지키기 위해 어떻게 Variance(공변성) 을 문법적으로 지원하는지 알아보았다. 직접 List 컨테이너를 구현해 보면서 함수의 인자는 Covariant, 리턴타입은 Contravariant 란 것도 알게 되었고, Nil 을 만들기 위해 Nothing 을 어떻게 엮을 수 있는지도 직접 확인해 보았다. 마지막으로, 프로그래머가 가장 많이 작성하는 로직인 Decomposition…

Read this article

Functional Programming in Scala, Chapter 4



Comment

2014-10-07, Functional Programming in Scala, Coursera Types and Pattern Matching Functions as Objects In fact function values are treated as objects in Scala trait Function1[A, B] { def apply(x: A): B } 결국, function 은 apply 메소드를 가진 오브젝트다. 예를 들어서 (x: Int) => x * x 는 다음과 같이 Function1…

Read this article