aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/number/frac.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/data/number/frac.lux')
-rw-r--r--stdlib/source/lux/data/number/frac.lux29
1 files changed, 15 insertions, 14 deletions
diff --git a/stdlib/source/lux/data/number/frac.lux b/stdlib/source/lux/data/number/frac.lux
index 5a816df33..a23c5c4e2 100644
--- a/stdlib/source/lux/data/number/frac.lux
+++ b/stdlib/source/lux/data/number/frac.lux
@@ -7,8 +7,9 @@
[equivalence (#+ Equivalence)]
["." order (#+ Order)]
[codec (#+ Codec)]]
+ [control
+ ["." try (#+ Try)]]
[data
- ["." error (#+ Error)]
["." maybe]]
["." math]]
["." // #_
@@ -84,10 +85,10 @@
(def: (decode input)
(case ("lux f64 decode" [input])
(#.Some value)
- (#error.Success value)
+ (#try.Success value)
#.None
- (#error.Failure "Could not decode Frac"))))
+ (#try.Failure "Could not decode Frac"))))
(template [<struct> <int> <base> <char-set> <error>]
[(structure: #export <struct> (Codec Text Frac)
@@ -114,7 +115,7 @@
decimal-part ("lux text clip" (inc split-index) ("lux text size" repr) repr)]
(case [(:: <int> decode whole-part)
(:: <int> decode ("lux text concat" "+" decimal-part))]
- (^multi [(#error.Success whole) (#error.Success decimal)]
+ (^multi [(#try.Success whole) (#try.Success decimal)]
(i/>= +0 decimal))
(let [sign (if (i/< +0 whole)
-1.0
@@ -127,19 +128,19 @@
(f/* <base> output))))
adjusted-decimal (|> decimal int-to-frac (f// div-power))
dec-rev (case (:: //rev.hex decode ("lux text concat" "." decimal-part))
- (#error.Success dec-rev)
+ (#try.Success dec-rev)
dec-rev
- (#error.Failure error)
+ (#try.Failure error)
(error! error))]
- (#error.Success (f/+ (int-to-frac whole)
- (f/* sign adjusted-decimal))))
+ (#try.Success (f/+ (int-to-frac whole)
+ (f/* sign adjusted-decimal))))
_
- (#error.Failure ("lux text concat" <error> repr))))
+ (#try.Failure ("lux text concat" <error> repr))))
_
- (#error.Failure ("lux text concat" <error> repr)))))]
+ (#try.Failure ("lux text concat" <error> repr)))))]
[binary //int.binary +2.0 "01" "Invalid binary syntax: "]
)
@@ -308,14 +309,14 @@
("lux text concat" (<to> whole-part))
("lux text concat" (if (f/= -1.0 sign) "-" "+")))]
(case (:: ..binary decode as-binary)
- (#error.Failure _)
- (#error.Failure ("lux text concat" <error> repr))
+ (#try.Failure _)
+ (#try.Failure ("lux text concat" <error> repr))
output
output))
_
- (#error.Failure ("lux text concat" <error> repr))))))]
+ (#try.Failure ("lux text concat" <error> repr))))))]
[octal "Invalid octaladecimal syntax: " binary-to-octal octal-to-binary]
[hex "Invalid hexadecimal syntax: " binary-to-hex hex-to-binary]
@@ -332,7 +333,7 @@
(def: exponent-size Nat 11)
(template [<hex> <name>]
- [(def: <name> (|> <hex> (:: //nat.hex decode) error.assume .i64))]
+ [(def: <name> (|> <hex> (:: //nat.hex decode) try.assume .i64))]
["7FF7FFFFFFFFFFFF" not-a-number-bits]
["7FF0000000000000" positive-infinity-bits]