24

Hackage에는 많은 모나드 변환기 라이브러리가 있습니다. 몇몇 사람들은 다른 사람들보다 더 많은 관심을 얻는 것처럼 보입니다. 몇 가지 예를 들면 다음과 같습니다. mtl (어떤 이유로 변압기에 따라 현재 버전), 변압기, monadLib, monads-tf, mtlx, contstuff.모나드 트랜스 포머 라이브러리 - 어느 것을 사용할 것인가?

어떤 것을 선호해야하며 그 이유는 무엇입니까? 고유 한 기능은 무엇입니까? 실적은 어떻습니까?

+2

사소한 점에 대답하려면 : 나는 '변압기'를 위해 'MTL'이 단계적으로 단계적으로 제거되고 있다고 생각합니다. 이 프로세스의 현재 단계는 '트랜스포머'를 둘러싸고있는 얇은 래퍼로 바뀌므로 종속 관계가됩니다. –

+5

@camccann :'mtl'은'transformers'보다 엄밀한 기능을 제공하며'transformers' +'monads-fd' (현재는 더 이상 사용되지 않습니다)와 동일합니다. '트랜스포머 '는 Haskell-98 패키지에서 가능한 한 많은 것을 제공하며, mtl이 제공하는 추가 기능 (주로 인스턴스가 더 많음) 또는 원하는 경우 다른 패키지 (예 :'monads-tf')를 제공합니다. –

+0

@ John L : 오, 그래서'mtl'이'monads-fd'를 효과적으로 대체하고 있습니까? 설명 주셔서 감사합니다, 나는 시대에 뒤떨어져 있습니다. –

답변

16

Haskell Platformmtltransformers을 표준으로 지정합니다.

확실하지 않은 경우 mtl을 사용해야합니다.

그러나 새 라이브러리를 볼 특별한 기술적 이유가있는 경우 문제를 해결하거나 새로운 기능을 mtl에 추가하는 경향이 있습니다. 특히 monadLib에는 몇 가지 새로운 기능이 있습니다.

+2

HP에서 mtl을 선택하는 이유는 무엇입니까? – Tener

+0

그것은 가장 오래되고, 가장 널리 사용되고, 가장 잘 이해 된 모나드 라이브러리입니다. –

+2

... 어디에서, [Hackage 종속성에 따라] (http://bifunctor.homelinux.net/~roel/hackage/packages/archive/revdeps-list.html), "가장 널리 사용됨"은 "주문 "변압기 결합"이외의 다른 모든 것보다 훨씬 더 큰 –