on master help sign in
Fix docspecs
b888738Ranjeet Kumar Ranjan
src/Streamly/Internal/Data/Unfold.hs+1
@@ -146,6 +146,7 @@ module Streamly.Internal.Data.Unfold
146 -- ** Enumerate Num
146 -- ** Enumerate Num
147 , enumerateFromNum
147 , enumerateFromNum
148 , enumerateFromThenNum
148 , enumerateFromThenNum
149+ , enumerateFromStepNum
149
150
150 -- ** Enumerating 'Bounded 'Integral' Types
151 -- ** Enumerating 'Bounded 'Integral' Types
151 , enumerateFromIntegralBounded
152 , enumerateFromIntegralBounded
src/Streamly/Internal/Data/Unfold/Enumeration.hs+28−7
@@ -86,9 +86,12 @@ import Prelude
86-- @from@ and incrementing every time by @stride@. For 'Bounded' types, after
86-- @from@ and incrementing every time by @stride@. For 'Bounded' types, after
87-- the value overflows it keeps enumerating in a cycle:
87-- the value overflows it keeps enumerating in a cycle:
88--
88--
89+-- @
89-- >>> Stream.toList $ Stream.take 10 $ Stream.unfold Unfold.enumerateFromStepNum (255::Word8,1)
90-- >>> Stream.toList $ Stream.take 10 $ Stream.unfold Unfold.enumerateFromStepNum (255::Word8,1)
90-- [255,0,1,2,3,4,5,6,7,8]
91-- [255,0,1,2,3,4,5,6,7,8]
91--
92--
93+-- @
94+--
92-- The implementation is numerically stable for floating point values.
95-- The implementation is numerically stable for floating point values.
93--
96--
94-- Note 'enumerateFromStepIntegral' is faster for integrals.
97-- Note 'enumerateFromStepIntegral' is faster for integrals.
@@ -114,14 +117,18 @@ enumerateFromStepNum = Unfold step inject
114
117
115-- | Same as 'enumerateFromStepNum (from, next)' using a stride of @next - from@:
118-- | Same as 'enumerateFromStepNum (from, next)' using a stride of @next - from@:
116--
119--
117−-- >>> enumerateFromThenNum =
120+-- @
118−-- lmap (\(from, next) -> (from, next - from)) enumerateFromStepNum
121+-- >>> enumerateFromThenNum = lmap (\(from, next) -> (from, next - from)) Unfold.enumerateFromStepNum
119--
122--
120−-- Example:
123+-- @
121--
124--
125+-- Example:
126+-- @
122−-- >>> Stream.toList $ Stream.take 10 $ Stream.unfold Unfold.enumerateFromThenNum (255::Word8,0)
127+-- >>> Stream.toList $ Stream.take 10 $ Stream.unfold enumerateFromThenNum (255::Word8,0)
123-- [255,0,1,2,3,4,5,6,7,8]
128-- [255,0,1,2,3,4,5,6,7,8]
124--
129--
130+-- @
131+--
125-- The implementation is numerically stable for floating point values.
132-- The implementation is numerically stable for floating point values.
126--
133--
127-- Note that 'enumerateFromThenIntegral' is faster for integrals.
134-- Note that 'enumerateFromThenIntegral' is faster for integrals.
@@ -142,12 +149,22 @@ enumerateFromThenNum =
142
149
143-- | Same as 'enumerateFromStepNum' using a stride of 1:
150-- | Same as 'enumerateFromStepNum' using a stride of 1:
144--
151--
152+-- @
145−-- >>> enumerateFromNum = lmap (\from -> (from, 1)) enumerateFromStepNum
153+-- >>> enumerateFromNum = lmap (\from -> (from, 1)) Unfold.enumerateFromStepNum
154+-- >>> Stream.toList $ Stream.take 6 $ Stream.unfold enumerateFromNum (0.9)
155+-- [0.9,1.9,2.9,3.9,4.9,5.9]
156+--
157+-- @
146--
158--
147-- Also, same as 'enumerateFromThenNum' using a stride of 1 but see the note in
159-- Also, same as 'enumerateFromThenNum' using a stride of 1 but see the note in
148-- 'enumerateFromThenNum' about the loss of precision:
160-- 'enumerateFromThenNum' about the loss of precision:
149--
161--
162+-- @
150−-- >>> enumerateFromNum = lmap (\from -> (from, from + 1)) enumerateFromThenNum
163+-- >>> enumerateFromNum = lmap (\from -> (from, from + 1)) Unfold.enumerateFromThenNum
164+-- >>> Stream.toList $ Stream.take 6 $ Stream.unfold enumerateFromNum (0.9)
165+-- [0.9,1.9,2.9,3.8999999999999995,4.8999999999999995,5.8999999999999995]
166+--
167+-- @
151--
168--
152-- /Internal/
169-- /Internal/
153--
170--
@@ -265,7 +282,11 @@ enumerateFromThenFractional = enumerateFromThenNum
265-- | Same as 'enumerateFromStepNum' with a step of 1 and enumerating up to the
282-- | Same as 'enumerateFromStepNum' with a step of 1 and enumerating up to the
266-- specified upper limit rounded to the nearest integral value:
283-- specified upper limit rounded to the nearest integral value:
267--
284--
285+-- @
268−-- >>> enumerateFromToFractional =
286+-- >>> Stream.toList $ Stream.unfold Unfold.enumerateFromToFractional (0.1, 6.3)
287+-- [0.1,1.1,2.1,3.1,4.1,5.1,6.1]
288+--
289+-- @
269--
290--
270-- /Internal/
291-- /Internal/
271--
292--