2 releases
Uses old Rust 2015
0.1.1 | Oct 21, 2017 |
---|---|
0.1.0 | Oct 21, 2017 |
#1571 in Algorithms
11KB
327 lines
Rust Aviary
This crate is a reimplementation of Haskell's Data.Aviary combinators in Rust.
Installation
Add the following to the [dependencies]
section of your Cargo.toml:
aviary = "0.1.0"
Documentation
Available at docs.rs
Example: Palindrome checker
Let's define some helper functions:
let eq = &(|x: String, y: String| PartialEq::eq(&x, &y)) as &Fn(String, String) -> bool;
let reverse = |x: String| x.chars().rev().collect::<String>();
And make a function using the starling combinator:
let is_palindrome = starling(&eq, &reverse);
Make sure our function is correct:
assert!(is_palindrome("nisumaa oli isäsi ilo aamusin".to_string()));
Contributing
Any contributions are welcome.