masala

Crates.iomasala
lib.rsmasala
version0.2.1
sourcesrc
created_at2021-07-24 15:11:40.954518
updated_at2021-07-29 17:00:51.306747
descriptionAutomatic curry. Yum!
homepage
repositoryhttps://github.com/pard68/masala
max_upload_size
id426801
size7,378
Ian S. Pringle (ispringle)

documentation

README

Masala

An autocurrying macro for Rust.

Usage

This crate requires 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
}

TODO

  • Allow for Generics
  • Allow for curry functions to be written similar to
Commit count: 8

cargo fmt