我應該使用新的Haskell語言擴充套件來支援舊的嗎?
當啟動一個新的Haskell專案時,需要使用新的和較舊的副檔名提供的語言功能,我應該使用哪個?新的還是舊的?例如:
>ofollow,noindex" target="_blank">GADTs 取代ExistentialQuantification .
>TypeFamilies 在很多情況下取代FunctionalDependencies .
>等等(如果您有更多的例子可以自由新增)
我傾向於較新的,因為他們感覺更清潔,他們以統一的方式為語言新增更多的功能.然而,較舊的編譯器支援更多編譯器,它們在現有庫中使用,也可能在程式員中更為出名.
更新:如答案/意見所述,上述“取代”關係並不完全準確.但是,當通過多個擴充套件完成任務時,我對(通常發生)的情況感興趣.
簡而言之,是的,由於你所說的理由:更清潔和更清晰.
有時候,我遇到了一個更好地表達為具有功能依賴性的多引數型別類的地方,因為您可以更簡單地獲得更多的引數,但通常相關型別的家庭是更清晰和更靈活的方法. .型別的系列對功能性程式設計師而言比功能依賴性更加直觀.
GADT具有比現有量化更清晰,更清晰的語法,更少的概念障礙,並且很容易獲得所需的行為.
如果可以,我建議使用新的東西,如果需要,可以使用舊的方式.這些可愛的更新的擴充套件可以做更高的配置.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/13422610/should-i-use-new-haskell-language-extensions-in-favour-of-the-old-ones