aviary

Crates.ioaviary
lib.rsaviary
version0.1.1
sourcesrc
created_at2017-10-21 16:08:56.686495
updated_at2017-10-21 16:13:59.481671
descriptionAviary bird combinators for Rust.
homepagehttps://github.com/fwrs/aviary-rs
repositoryhttps://github.com/fwrs/aviary-rs
max_upload_size
id36488
size27,039
(fwrs)

documentation

https://docs.rs/aviary/

README

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.

Commit count: 0

cargo fmt