5 个版本

使用旧的 Rust 2015

0.1.4 2017 年 12 月 30 日
0.1.3 2017 年 12 月 27 日
0.1.2 2017 年 12 月 27 日
0.1.1 2017 年 12 月 27 日
0.1.0 2017 年 6 月 11 日

#1376数据结构

MIT/Apache

26KB
662

Rustz 是 Rust 中函数式编程的库。

它提供了尽可能纯且实用的函数式数据结构,以改善 Rust 中的函数式编程体验。它为大量数据结构实现了一套基础函数类型类(例如 Functor,Monad)的实例。

实现尝试尽可能接近这些数据结构的纯函数式实现,但同时也考虑了 Rust 编程语言的具体情况。

状态

这目前是我探索一般函数式编程的一种方式,也是理解 Rust 内在限制下可能性的方式。如果整体方法在没有否定 Rust 的设计原则和性能目标的情况下是可行的,那么计划肯定是将这个库提升到生产级别的函数式库。

您可以在这里跟踪我的计划和进度。

数据结构 状态
Lense 第一个工作版本
Applicative 早期实验
ValidationNel 早期实验
State Monad 初步尝试,工作但需要在生命周期上进行重构。
Reader Monad 工作版本,需要清理和重构
Writer Monad 计划中
ReaderT 计划用于 Option,Tokio futures,以及其他在 Web 服务开发中通常需要的类型类。
Free Monad 尝试过这个,但不确定在 Rust 中是否以有用的方式实现。我也不太理解 Free,所以现在放弃这个想法。欢迎帮助。
... 请为任何您想看到的内容在这里打开问题

志同道合的 Crates

Rust中的函数式编程讨论

关于Impl-Trait的讨论

关于高阶类型(Higher Kinded Types)的讨论

无运行时依赖