ref: 41034a4ed8653dc474627a0d668eaedff54bb251
parent: b9daf68bd8c951e69d2a317c1440594793686133
author: konsumlamm <konsumlamm@gmail.com>
date: Wed Jan 8 18:39:06 EST 2025
Integer: use `dropWhileEnd` for removing trailing 0s
--- a/lib/Data/Integer.hs
+++ b/lib/Data/Integer.hs
@@ -112,7 +112,8 @@
-- Trim off 0s and make an Integer
sI :: Sign -> [Digit] -> Integer
sI s ds =
- case trim0 ds of
+ -- Remove trailing 0s
+ case dropWhileEnd (== (0 :: Word)) ds of
[] -> I Plus []
ds' -> I s ds'
@@ -166,10 +167,6 @@
subW b x y =
let d = maxD + x - y - b
in (1 - quotMaxD d, remMaxD d)
-
--- Remove trailing 0s
-trim0 :: [Digit] -> [Digit]
-trim0 = reverse . dropWhile (== (0 :: Word)) . reverse
-- Is axs < ays?
ltW :: [Digit] -> [Digit] -> Bool
--
⑨