higher-order function을 first-order로 대체시키는 것.
사용되는 함수를 데이터화 시켜서 구현한다.
http://www.pathsensitive.com/2019/07/the-best-refactoring-youve-never-heard.html
일반적인 재귀 함수에 CPS+defunctionalizion을 적용하면 recursion을 iteration으로 변환할 수 있다.
https://blog.sigplan.org/2019/12/30/defunctionalization-everybody-does-it-nobody-talks-about-it/
lightweight higher-kinded polymorphism은 type에 defunctionalization을 적용하는 것이다.
https://link.springer.com/chapter/10.1007/978-3-319-07151-0_8
tramploine과 defunctionalization
https://blog.mattbierner.com/tail-call-implementation-and-defunctionalization-in-javascript/