diff options
Diffstat (limited to 'stdlib/source/lux/data/number/frac.lux')
-rw-r--r-- | stdlib/source/lux/data/number/frac.lux | 29 |
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] |