#type-level #natural #numbers

nightly type-nats

Rust 中的类型级别自然数

2 个版本

使用旧的 Rust 2015

0.0.2 2015 年 1 月 1 日
0.0.1 2014 年 12 月 29 日

2883Rust 模式

MIT 许可证

11KB
306

type-nats.rs

Rust 中的类型级别自然数

build status

概要

这个库使用特性和关联类型实现了类型级别的自然数。目前,它更多的是作为一个演示。

示例

    fn example() {
        let _: SNat< S<S<S<S<S<Z>>>>> > = Add::< S<S<S<Z>>> , S<S<Z>> >::query();
        let _: SNat< N06 > = Mul::< N03 , N02 >::query();
        let _: SNat< N08 > = Exp::< N03 , N02 >::query();
        let _: SNat< N24 > = Fac::< N04       >::query();

        assert_eq!(Add::< N03 , N02 >::to_uint(), 5u);
        assert_eq!(Mul::< N03 , N02 >::to_uint(), 6u);
        assert_eq!(Exp::< N03 , N02 >::to_uint(), 8u);
        assert_eq!(Fac::< N04       >::to_uint(), 24u);
    }

文档

请参阅[API 文档](http://darinmorrison.github.io/type-nats.rs/doc/type-nats/)。

要求

  1. Rust
  2. Cargo

您可以使用以下命令安装它们:

$ curl -s https://static.rust-lang.org/rustup.sh | sudo sh

有关安装 Rust 的详细信息,请参阅安装 Rust

用法

$ cargo build       ## build library and binary
$ cargo test        ## run tests in ./tests
$ cargo bench       ## run benchmarks in ./benches

讨论

freenode (chat.freenode.net) 的 #epsilonz 有一个 IRC 频道。

无运行时依赖