모나드 트랜스포머 공부하는데 transformers랑 mtl 중에 골라야하던데 둘다 표준이라고 하더라고
누구는 잘 모르면 mtl 쓰면 된다고 하고 누구는 이제 mtl은 놔줄때가 됐다고 그러는데 현시점에서 무난한게 뭐임?
일단 transformers로 쓰니 요즘 많이 본다는 보라색 책은 따라가짐
댓글 6
그럼 transformers 쓰면 되는 거 아님? mtl 쓸 이유가 없는데? 물론 하알못임
아나리쿠(am5am)2020-09-24 08:03
transformers 는 모나드 트랜스포머 자체를 정의하는거고 (StateT, ReaderT 등) mtl은 class를 정의함 (MonadState, MonadReader 등). mtl은 transformers를 저 편하게 쓰려고 만든거라 디펜던시로 transformers가 있음 - dc App
다믜(damhiya)2020-09-24 08:46
답글
그리고 mtl은 MultiParamTypeClasses 확장이 필요함. (워낙 많이 쓰는 확장이라 딱히 문제는 없음) - dc App
다믜(damhiya)2020-09-24 08:49
답글
mtl을 쓰는 이유는 monad transformer들이 여러겹 겹쳐있을때 일일이 lift하는걸 타입클래스가 대신해줘서 쓰는거. 트랜스포머가 2겹 이상이면 mtl쓰는게 편함. transformers가 더 기본적인거라 알아두긴 하되 복잡한거 해야되면 mtl로 하는게 좋을듯 - dc App
다믜(damhiya)2020-09-24 08:57
답글
ㅗㅜㅑ ㄱㅅㄱㅅ
익명(175.223)2020-09-24 09:02
답글
그리고 mtl놔줄때가 됬다는건 mtl 말고 다른 effect library들을 쓰자는 말 같은데, 이건 아직 완전한 대안이 없음. 성능이랑 사용 편의성 문제 때문에 온갖 해결책이랑 구현체들이 날뛰는중임. 뭐 새로운거 배운다 해도 mtl이 effect library중에서 제일 배우기 쉬운거라 mtl해서 손해볼건 없을듯. - dc App
그럼 transformers 쓰면 되는 거 아님? mtl 쓸 이유가 없는데? 물론 하알못임
transformers 는 모나드 트랜스포머 자체를 정의하는거고 (StateT, ReaderT 등) mtl은 class를 정의함 (MonadState, MonadReader 등). mtl은 transformers를 저 편하게 쓰려고 만든거라 디펜던시로 transformers가 있음 - dc App
그리고 mtl은 MultiParamTypeClasses 확장이 필요함. (워낙 많이 쓰는 확장이라 딱히 문제는 없음) - dc App
mtl을 쓰는 이유는 monad transformer들이 여러겹 겹쳐있을때 일일이 lift하는걸 타입클래스가 대신해줘서 쓰는거. 트랜스포머가 2겹 이상이면 mtl쓰는게 편함. transformers가 더 기본적인거라 알아두긴 하되 복잡한거 해야되면 mtl로 하는게 좋을듯 - dc App
ㅗㅜㅑ ㄱㅅㄱㅅ
그리고 mtl놔줄때가 됬다는건 mtl 말고 다른 effect library들을 쓰자는 말 같은데, 이건 아직 완전한 대안이 없음. 성능이랑 사용 편의성 문제 때문에 온갖 해결책이랑 구현체들이 날뛰는중임. 뭐 새로운거 배운다 해도 mtl이 effect library중에서 제일 배우기 쉬운거라 mtl해서 손해볼건 없을듯. - dc App