**unfoldr** -text -base

*O(n)* The unfoldr function is analogous to the List 'unfoldr'. unfoldr builds a ByteString from a seed value. The function takes the element and returns Nothing if it is done producing the ByteString or returns Just (a,b), in which case, a is a prepending to the ByteString and b is used as the next element in a recursive call.
*O(n)*, unfoldr function is analogous to the List 'unfoldr'. unfoldr builds a ByteString from a seed value. The function takes the element and returns Nothing if it is done producing the ByteString or returns Just (a,b), in which case, a is the next character in the string, and b is the seed value for further production.
Examples:
> unfoldr (\x -> if x <= '9' then Just (x, succ x) else Nothing) '0' == "0123456789"
*O(n)* The unfoldr function is analogous to the List 'unfoldr'. unfoldr builds a ByteString from a seed value. The function takes the element and returns Nothing if it is done producing the ByteString or returns Just (a,b), in which case, a is a prepending to the ByteString and b is used as the next element in a recursive call.
*O(n)*, unfoldr function is analogous to the List 'unfoldr'. unfoldr builds a ByteString from a seed value. The function takes the element and returns Nothing if it is done producing the ByteString or returns Just (a,b), in which case, a is the next byte in the string, and b is the seed value for further production.
Examples:
> unfoldr (\x -> if x <= 5 then Just (x, x + 1) else Nothing) 0
> == pack [0, 1, 2, 3, 4, 5]
Builds a sequence from a seed value. Takes time linear in the number of generated elements. *WARNING:* If the number of generated elements is infinite, this method will not terminate.

*O(n)* Like unfoldr, unfoldrN builds a ByteString from a seed value. However, the length of the result is limited by the first argument to unfoldrN. This function is more efficient than unfoldr when the maximum length of the result is known.
The following equation relates unfoldrN and unfoldr:
> unfoldrN n f s == take n (unfoldr f s)
*O(n)* Like unfoldr, unfoldrN builds a ByteString from a seed value. However, the length of the result is limited by the first argument to unfoldrN. This function is more efficient than unfoldr when the maximum length of the result is known.
The following equation relates unfoldrN and unfoldr:
> fst (unfoldrN n f s) == take n (unfoldr f s)
Create a Builder that encodes a sequence generated from a seed value using a BoundedPrim for each sequence element.