Implementing `randoms` Learn You a Haskell presents the randoms function. 

I implemented it as follows:

-- randoms that takes a generator and returns an infinite sequence 
-- of values based on that generator
import System.Random

randoms' :: StdGen -&gt; [Int]
randoms' g = num : randoms' gen
   where (num, gen) = random g 


Please critique it.
Straight forward. Easy to follow. But this is clearly some kind of fold.

randoms' = unfoldr (Just . random)


works nicely.