Jooyung Han (한주영)[js] reduce에 Promise 더하기reduce부터 이야기해보자. Array.prototype.reduce는 스위스 아미 나이프 같은 함수다. 함수형 프로그래밍의 첫 맛을 느끼는 순간들이 다양하지만 그 중 reduce를 발견하고 오~ 하는 이들도 많다. map도 있고 filter도…Dec 10, 2018Dec 10, 2018
Jooyung Han (한주영)Haskell 초급 예제 — todo회사서 작은 하스켈 학습 모임을 진행하고 있다. 일주일에 한번 모이는 정도, 그리고 교재로 사용중인 하스켈북의 설명이 너무 장황한 덕에 진도가 느리다.Jun 9, 2018Jun 9, 2018
Jooyung Han (한주영)JS에 Applicative/Traversable 적용하기JavaScript Promise에는 all() 이라는 도움 함수가 있다.Jan 28, 20181Jan 28, 20181
Jooyung Han (한주영)generator/interpreter 패턴?JavaScript generator를 코루틴으로 활용할 때 바깥을 감싸는 함수가 필요하다. 이 감싸는 함수는 generator가 yield하는 값을 해석하고 또 generator를 resume하기도 하면서 상호작용한다. 이런 형태를…Jan 27, 2018Jan 27, 2018
Jooyung Han (한주영)JS 제너레이터와 함수형 프로그래밍JavaScript 제너레이터 이야기를 꽤 한 것 같다. 이번에는 함수형 프로그래밍 관점에서 이야기를 해볼까 한다. (주의: 이 글은 그냥 개인적인 견해라는 점을 분명히 한다.)Jan 16, 2018Jan 16, 2018
Jooyung Han (한주영)JS 제너레이터에서 throw/catch대칭 코루틴으로 동작하는 경우에는 throw/catch가 성립하지 않는다. throw/catch는 콜스택 되감기(unwinding) 기능인데 대칭 코루틴에서 컨텍스트 스위칭되는 것은 콜스택과 무관한 점프이기 때문. 하지만 호출관계는 있지만…Jan 15, 2018Jan 15, 2018
Jooyung Han (한주영)CPS로 스택오버플로 회피하기이전 글에서 재귀함수 때문에 발생하는 스택오버플로 문제를 회피할 목적으로 제너레이터 코루틴을 사용했다. 이때 스택오버플로를 회피하는 또다른 방법으로 트램폴리닝을 언급했는데, 트램폴리닝의 경우 꼬리재귀 문제는 해결 가능하지만 RD파서 처럼 꼬리재귀…Jan 15, 2018Jan 15, 2018
Jooyung Han (한주영)JS 제너레이터로 스택오버플로 피하기“모나딕 파서”글에서 만든 파서 같은 형태를 Recursive Descent Parser 라고 한다. 재귀적 문법 구조를 처리하는 파서를 직접 만든다고 했을 때 제일 구현하기 쉬운 방법 중 하나다. 문법에 따라 거의 기계적으로 만들 수 있기…Jan 12, 2018Jan 12, 2018