gpt4 book ai didi

haskell - 用户应该使用/避免哪些 Haskell (GHC) 扩展?

转载 作者:行者123 更新时间:2023-12-03 05:41:12 25 4
gpt4 key购买 nike

我已经有过几次让 GHC 告诉我使用扩展的经历,却发现在使用该扩展时我使代码变得更加复杂,而一个简单的重构本来可以让我坚持使用 Haskell 98(现在 2010 )并有一个更简单的解决方案。

另一方面,有时 GADT 或 Rank2Type(很少是 RankNType)可以减少工作量并让代码变得更加简洁。

哪些扩展通常会掩盖更好设计的可能性,哪些扩展通常会改进它?如果有一些同时执行这两种操作,那么在决定使用该扩展之前,用户应该寻找什么(确保他们想要的解决方案是否正确)?

(另请参阅 Should I use GHC Haskell extensions or not? )

最佳答案

道德上“好”扩展和道德“坏”扩展的临时列表 - 这是一种审美判断!

好的

  • GADT
  • 并行列表推导式
  • 模式保护
  • Monad 理解
  • 元组部分
  • 记录通配符
  • 空数据声明
  • 存在类型
  • 广义新类型派生
  • MPTC + FD
  • 类型系列
  • 明确量化
  • 高级多态性
  • 词法范围的 tyvars
  • 刘海图案

坏处

  • SQL 推导式
  • 隐式参数

丑陋(但必要)

  • Haskell 模板
  • 未装箱的类型和元组
  • 无法判定、重叠和不连贯的实例 - 通常意味着您的设计有误。

不确定

  • 箭头符号
  • 查看模式

关于haskell - 用户应该使用/避免哪些 Haskell (GHC) 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com