3个不稳定版本
0.2.1 | 2021年7月29日 |
---|---|
0.2.0 | 2021年7月26日 |
0.1.0 | 2021年7月24日 |
#1761 在 过程宏
7KB
95 行
Masala
一个用于Rust的自动柯里化宏。
用法
此crate需要nightly版
use masala::curry;
#[curry]
fn mul<T: Multiple>(a: T, b: T) -> T {
a * b
}
#[curry]
fn add<T>(a: Fn(T), b: T, t:T) -> T {
a + b
}
#[curry]
pub fn psi<T: Clone>(a: fn(T, T) -> T, b: fn(T) -> T, c: T, d: T) -> T {
a(b(c.clone()), b(d))
}
fn main() {
let add_10 = add(10);
println!("{}", psi(mul)(add)(10)(3)); // (10 + 10) * (3 + 10) = 33
}
待办事项
- 允许泛型使用
-
允许编写类似于的柯里化函数
依赖项
~1.5MB
~35K SLoC