diff options
author | Nadrieril | 2019-02-27 20:39:29 +0100 |
---|---|---|
committer | Nadrieril | 2019-02-27 20:39:29 +0100 |
commit | 2c00699d217e0a54d44678529fa3d87936071fec (patch) | |
tree | b01bce29b06c71f50bbc8a2ce8beb127f7ed5bb2 /src/core.rs | |
parent | 8680920be83ecff0aaf6472b78599bb9108272a7 (diff) |
Add Natural/Show builtin
Diffstat (limited to '')
-rw-r--r-- | src/core.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core.rs b/src/core.rs index 67a7492..473a6a6 100644 --- a/src/core.rs +++ b/src/core.rs @@ -213,6 +213,7 @@ pub enum BuiltinValue { NaturalEven, /// `NaturalOdd ~ Natural/odd` NaturalOdd, + NaturalShow, /// `ListBuild ~ List/build` ListBuild, /// `ListFold ~ List/fold` @@ -478,6 +479,7 @@ impl Display for BuiltinValue { NaturalFold => "Natural/fold", NaturalIsZero => "Natural/isZero", NaturalOdd => "Natural/odd", + NaturalShow => "Natural/show", OptionalFold => "Optional/fold", }) } @@ -882,6 +884,7 @@ pub fn normalize<'i, S, T, A>(e: &Expr<'i, S, A>) -> Expr<'i, T, A> (BuiltinValue(NaturalIsZero), NaturalLit(n)) => BoolLit(n == 0), (BuiltinValue(NaturalEven), NaturalLit(n)) => BoolLit(n % 2 == 0), (BuiltinValue(NaturalOdd), NaturalLit(n)) => BoolLit(n % 2 != 0), + (BuiltinValue(NaturalShow), NaturalLit(n)) => TextLit(n.to_string()), (App(f@box BuiltinValue(ListBuild), box t), k) => { let labeled = normalize::<_, T, _>(&app(app(app(k.clone(), app( |