- Kleisli composition은 함수형 프로그래밍에서 두 개의 Kleisli 함수를 조합하는 기술을 가리킨다.
- Kleisli 함수는 모나드를 사용하는 함수로, 입력을 받아 모나드 값을 반환한다.
- 이러한 함수를 조합하여 모나드 내의 값을 연속적으로 처리하거나 변환하는 작업을 가능하게 하는 것이 바로 Kleisli composition이다.
-
Promises는 kleisli composition을 지원하는 도구이다.
-
kleisli composition을 지원한다는 것은 함수 합성을 언제나 수학적으로 안전하게 할 수 있다는 의미이다.
-
예를 들어 f,g 함수를 합성할 경우
f(g(x)) = f(g(x))
식을 수학적으로 바라볼 경우 항상 성립되어야 한다.- 해당 식이 성립되지 않는 요인이 있다면 순수한 함수형 프로그래밍을 가능하게 (수학적으로 프로그래밍을 바라볼 수 있도록) 보장해주지 못하는 것이다.
-
kleisli composition을 지원해주기 위해서는 에러 처리를 해주어서 에러가 발생하더라도
f(g(x)) = f(g(x))
라는 식이 성립되도록 해야 한다. -
Promise는 reject와 catch를 통해 언제나
f(g(x)) = f(g(x))
라는 식이 성립되도록 에러 처리를 해줄 수 있기 때문에 kleisli composition을 지원한다고 할 수 있다.
참고