ML에도 모나드가 있다: 모두 모듈에 관한 이야기

2025-06-24
ML에도 모나드가 있다: 모두 모듈에 관한 이야기

Haskell에서 모나드를 사용하는 것이 해당 언어의 고유한 기능이라는 일반적인 인식에 대해 이의를 제기하는 글입니다. 저자는 모나드가 언어 설계 문제가 아니라 라이브러리 설계 문제이며, 모듈성을 갖춘 언어라면 어떤 언어에서도 구현할 수 있다고 주장합니다. 이 글에서는 ML을 사용하여 Option 모나드나 IO 모나드 등을 모듈 시스템을 사용하여 구현하는 방법을 보여줍니다. ML이 모나드를 사용할 수 있다는 것을 인정하면서도 저자는 기본적으로 모나드가 생략되어 있는 것은 코드의 유연성 저하나 함수형 스타일과 모나드적 스타일 간의 전환 어려움 등과 같은 잠재적인 단점 때문이라고 시사합니다.

더 보기
개발 모듈