Bluefin

主要观点:Bluefin 是一种 Haskell 效果系统,具有新的 API 风格,效果通过值级句柄访问,不同类型效果可在同一作用域,异常通过Exception句柄处理,有效果作用域限制,类型签名遵循特定模式,与其他效果系统有区别,实现风格类似 effectful 等。
关键信息

  • 效果通过值级句柄访问,如State句柄用于访问可变状态。
  • 可在同一作用域有多种相同类型效果,方便区分。
  • 异常通过Exception句柄处理,每个异常会被处理且只能在一处处理。
  • 类型签名遵循常见模式,约束效果标签。
  • 与 effectful 的主要区别在于效果的表示方式。
  • 实现风格类似 effectful,Eff等是IO等的包装。
    重要细节
  • 示例example1展示了可变状态效果句柄的使用。
  • 示例example2有两个可变Int状态效果在作用域。
  • 示例example3利用 Bluefin 计算数字和并处理异常。
  • incrementReadLine函数使用多种效果句柄。
  • 运行函数需对应处理效果,如runState等。
  • 提供使用 tips 如使用NoMonoLocalBinds等。
  • 创建自定义效果的示例countPositivesNegatives
阅读 130
0 条评论