diff options
Diffstat (limited to 'stdlib/source/lux/data/number/ratio.lux')
-rw-r--r-- | stdlib/source/lux/data/number/ratio.lux | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/stdlib/source/lux/data/number/ratio.lux b/stdlib/source/lux/data/number/ratio.lux index f3f9a1196..c056e740a 100644 --- a/stdlib/source/lux/data/number/ratio.lux +++ b/stdlib/source/lux/data/number/ratio.lux @@ -7,7 +7,7 @@ codec monad ["p" parser]) - (data [number "n/" Number<Nat> Codec<Text,Nat>] + (data [number "n/" Codec<Text,Nat>] [text "Text/" Monoid<Text>] text/format ["E" error] @@ -24,69 +24,69 @@ (def: #hidden (normalize (^slots [#numerator #denominator])) (-> Ratio Ratio) (let [common (math;gcd numerator denominator)] - {#numerator (n./ common numerator) - #denominator (n./ common denominator)})) + {#numerator (n// common numerator) + #denominator (n// common denominator)})) (def: #export (q.* param input) (-> Ratio Ratio Ratio) - (normalize [(n.* (get@ #numerator param) + (normalize [(n/* (get@ #numerator param) (get@ #numerator input)) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #denominator input))])) (def: #export (q./ param input) (-> Ratio Ratio Ratio) - (normalize [(n.* (get@ #denominator param) + (normalize [(n/* (get@ #denominator param) (get@ #numerator input)) - (n.* (get@ #numerator param) + (n/* (get@ #numerator param) (get@ #denominator input))])) (def: #export (q.+ param input) (-> Ratio Ratio Ratio) - (normalize [(n.+ (n.* (get@ #denominator input) + (normalize [(n/+ (n/* (get@ #denominator input) (get@ #numerator param)) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #numerator input))) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #denominator input))])) (def: #export (q.- param input) (-> Ratio Ratio Ratio) - (normalize [(n.- (n.* (get@ #denominator input) + (normalize [(n/- (n/* (get@ #denominator input) (get@ #numerator param)) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #numerator input))) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #denominator input))])) (def: #export (q.% param input) (-> Ratio Ratio Ratio) - (let [quot (n./ (n.* (get@ #denominator input) + (let [quot (n// (n/* (get@ #denominator input) (get@ #numerator param)) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #numerator input)))] - (q.- (update@ #numerator (n.* quot) param) + (q.- (update@ #numerator (n/* quot) param) input))) (def: #export (q.= param input) (-> Ratio Ratio Bool) - (and (n.= (get@ #numerator param) + (and (n/= (get@ #numerator param) (get@ #numerator input)) - (n.= (get@ #denominator param) + (n/= (get@ #denominator param) (get@ #denominator input)))) (do-template [<name> <op>] [(def: #export (<name> param input) (-> Ratio Ratio Bool) - (and (<op> (n.* (get@ #denominator input) + (and (<op> (n/* (get@ #denominator input) (get@ #numerator param)) - (n.* (get@ #denominator param) + (n/* (get@ #denominator param) (get@ #numerator input)))))] - [q.< n.<] - [q.<= n.<=] - [q.> n.>] - [q.>= n.>=] + [q.< n/<] + [q.<= n/<=] + [q.> n/>] + [q.>= n/>=] ) (do-template [<name> <comp>] |