GitHub - bodil/higher:用于 Rust 的你最喜欢的 Haskell 类型类

主要观点:

  • 介绍了用于 Rust 的函子层次结构及相关糟糕想法,给出了一系列与函子、应用函子和单子相关的特质及宏等。
  • 阐述了编写此内容的两个原因,一是看是否可行,二是作为带有复杂类型签名的玩笑。
  • 探讨了 Rust 是否能实现函子层次结构,指出存在无约束类型、GATs 不是高阶类型且使用起来较混乱等问题。
  • 结论是 Rust 接近实现函子层次结构但仍未准备好,整个库更像是一个练习和语言特性的引导,同时指出一些设计上的不足。

关键信息:

  • 提供了FunctorBind等特质的实现及相关宏,如run!宏。
  • 提到无约束类型导致无法为HashSet实现Functor等问题,以及 GATs 在表达 HTKs 时的困难和额外的约束需求。
  • 说明此项目有特定的许可证(Mozilla Public License v. 2.0)和行为准则(Contributor Code of Conduct)。

重要细节:

  • Functor特质的定义及Vec的实现示例,以及HashSet实现时的类型约束问题。
  • Bind特质的实现及组合两个Bind的函数compose_binds中遇到的类型推断和约束问题。
  • 提到借用检查器等在实现过程中的影响,以及无法为除装箱函数外的其他函数实现Apply等。
阅读 8
0 条评论