aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/number/ratio.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/data/number/ratio.lux16
1 files changed, 6 insertions, 10 deletions
diff --git a/stdlib/source/lux/data/number/ratio.lux b/stdlib/source/lux/data/number/ratio.lux
index b072a808a..647eaf4b5 100644
--- a/stdlib/source/lux/data/number/ratio.lux
+++ b/stdlib/source/lux/data/number/ratio.lux
@@ -123,18 +123,14 @@
#denominator numerator})
(def: abs id)
(def: (signum x)
- {#numerator |1
- #denominator |1}))
+ {#numerator 1
+ #denominator 1}))
(def: separator Text ":")
(def: part-encode
(-> Nat Text)
- (|>> nat/encode (text.split |1) maybe.assume product.right))
-
-(def: part-decode
- (-> Text (E.Error Nat))
- (|>> (format "+") nat/decode))
+ (|>> nat/encode (text.split 1) maybe.assume product.right))
(structure: #export _ (Codec Text Ratio)
(def: (encode (^slots [#numerator #denominator]))
@@ -144,8 +140,8 @@
(case (text.split-with separator input)
(#.Some [num denom])
(do E.Monad<Error>
- [numerator (part-decode num)
- denominator (part-decode denom)]
+ [numerator (nat/decode num)
+ denominator (nat/decode denom)]
(wrap (normalize {#numerator numerator
#denominator denominator})))
@@ -158,5 +154,5 @@
"The denominator can be omitted if it's 1."
(ratio numerator))}
(wrap (list (` ((~! normalize) {#..numerator (~ numerator)
- #..denominator (~ (maybe.default (' |1)
+ #..denominator (~ (maybe.default (' 1)
?denominator))})))))