Haskellでも平均値
rubyco(るびこ)の日記 - 平均値を見て、僕もHaskellで書いてみました。そうかー、seedを与えると乱数はIOじゃなくなるのかー。考えてみればすごく自然なのですが、なるほどと思いました。
module Main (main) where import Data.List (genericLength) import System.Random (mkStdGen, randomRs) main :: IO () main = do let g = mkStdGen 314159 -- この辺。IOじゃない。 ns = take 10 $ randomRs (0, 99) g avr = (fromInteger $ sum ns) / genericLength ns print ns putStrLn $ "average = " ++ show avr
実行例:
$ ./avr.exe [94,66,65,98,98,90,21,59,19,19] average = 62.9