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