. . - [IO Double] ; , -, . IO [Double] — IO, . , ; , a b Int s, return Double s. , . ( Int Double s, fromIntegral; round.) , , , ,
randomlist :: Double -> Double -> IO [Double]
randomlist a b = do
g <- newStdGen
return (randomRs (a,b) g)
, , ; GHC Random a => a -> a -> IO [a]. , , .
. , :
randomlist :: Random a => a -> a -> IO [a]
randomlist a b = fmap (randomRs (a,b)) newStdGen
fmap :: Functor f => (a -> b) -> f a -> f b . ? , - ; , [], (r ->) IO . 1 , ; randomRs (a,b) (Random a, RandomGen g) => g -> [a], - IO StdGen, Random a => IO [a] .
( ). Control.Applicative,
import Control.Applicative
randomlist :: Random a => a -> a -> IO [a]
randomlist a b = randomRs (a,b) <$> newStdGen
<$> fmap; $, , . <$> ( IO).
1: , ; , , .