Lensy Moore

主要观点:探讨在 Haskell 中利用lens库对 Moore 机和布线图进行建模,介绍了Poly范畴中的态射(poly 映射)、透镜(lenses)、Moore 机、布线图及它们的相关操作,如张量积(tensor product)等,并以 Fibonacci 为例展示了如何通过组合 Moore 机和布线图来构建 Fibonacci 算法。
关键信息:

  • Poly中对象定义为可表示函子的和,态射定义为从一个PolyBase到另一个PolyBase以及特定Base下的纤维映射。
  • 透镜定义与 poly 映射相似,poly 映射可视为(依赖的)透镜。
  • Moore 机形式为Syˢ ⇒ Oyᴵ,布线图是从一个Poly到另一个Poly的映射。
  • Poly具有无限幺半结构,其中张量积_⊗_在布线图中很有用。
  • 通过选择合适的 Moore 机并进行张量积和组合,可以构建 Fibonacci 算法。
    重要细节:
  • Poly中,不同的 poly 映射和透镜的定义及实现方式,如Lens类型类的定义和相关函数viewoverset等。
  • Moore 机的定义及示例,如latchMachinemdscounterplusdelay等。
  • 张量积在Moore中的定义及实现,如tensor函数。
  • Fibonacci 布线图的定义及如何通过选择合适的 Moore 机(plusdelay)来构建 Fibonacci Moore 机并运行得到预期结果。
阅读 11
0 条评论