1 个不稳定版本
0.1.0 | 2020年3月30日 |
---|
2888 在 Rust 模式 中
5KB
curry-macro
使用 Rust 的原生闭包语法享受 currying 的乐趣。
示例
您可以 currying 一个加法函数,该函数用于加两个数字。
首先,导入 curry 宏
use curry_macro::curry;
然后,您可以选择以下三种函数定义形式
- 最简单形式,没有任何类型注解。您需要使用 curried 函数,以便 Rust 编译器可以为您推断输入和返回类型
let add = curry!(|a, b| a + b);
assert_eq!(add(1)(2), 3);
- 带有输入类型注解
let add = curry!(|a: i32, b: i32| a + b);
- 带有输入和返回类型注解,以及函数体为一个代码块
let add = curry!(|a: i32, b: i32| -> i32 { a + b });
上述三个函数效果相同
// You can generate intermediate functions that are partially applied:
let add1_to = add(1);
let sum = add1_to(2);
assert_eq!(sum, 3);
// You can also can apply all arguments at once:
let sum = add(1)(2);
assert_eq!(sum, 3);
致谢
非常感谢 Korede-TA 他在 curry-macro 上的杰出贡献。
许可证
MIT