deferred-folds 0.8 → 0.9
raw patch · 2 files changed
+15/−6 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- DeferredFolds.Unfoldr: digits :: Integral a => a -> Unfoldr a
+ DeferredFolds.Unfoldr: decimalDigits :: Integral a => a -> Unfoldr a
+ DeferredFolds.Unfoldr: hexadecimalDigits :: Integral a => a -> Unfoldr a
+ DeferredFolds.Unfoldr: reverseDecimalDigits :: Integral a => a -> Unfoldr a
+ DeferredFolds.Unfoldr: reverseHexadecimalDigits :: Integral a => a -> Unfoldr a
- DeferredFolds.Unfoldr: reverseDigits :: Integral a => a -> Unfoldr a
+ DeferredFolds.Unfoldr: reverseDigits :: Integral a => a -> a -> Unfoldr a
Files
deferred-folds.cabal view
@@ -1,5 +1,5 @@ name: deferred-folds-version: 0.8+version: 0.9 category: Folding synopsis: Abstractions over deferred folds description:
library/DeferredFolds/Defs/Unfoldr.hs view
@@ -127,16 +127,25 @@ {-| Extract individual digits of a non-negative integral number. -}-digits :: Integral a => a -> Unfoldr a-digits = reverse . reverseDigits+decimalDigits :: Integral a => a -> Unfoldr a+decimalDigits = reverse . reverseDecimalDigits {-| Extract individual digits of a non-negative integral number in reverse order. More efficient than 'digits'. -}-reverseDigits :: Integral a => a -> Unfoldr a-reverseDigits x = Unfoldr $ \ step init -> let- loop x = case divMod x 10 of+reverseDecimalDigits :: Integral a => a -> Unfoldr a+reverseDecimalDigits = reverseDigits 10++hexadecimalDigits :: Integral a => a -> Unfoldr a+hexadecimalDigits = reverse . reverseHexadecimalDigits++reverseHexadecimalDigits :: Integral a => a -> Unfoldr a+reverseHexadecimalDigits = reverseDigits 16++reverseDigits :: Integral a => a -> a -> Unfoldr a+reverseDigits radix x = Unfoldr $ \ step init -> let+ loop x = case divMod x radix of (next, digit) -> step digit (if next <= 0 then init else loop next) in loop x