【激突】関数型言語 VS オブジェクト指向言語2at TECH【激突】関数型言語 VS オブジェクト指向言語2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト533:デフォルトの名無しさん 12/04/25 22:15:29.46 1.6GHz Core i5で2分 import qualified Data.Vector.Unboxed as V import qualified Data.List as L import System.Random.Mersenne data Lattice = Lattice! Int Int (V.Vector Int) (!) (Lattice m n v) (i,j) = v V.! (n * mod i m + mod j n) next b i j = case (sum xs, b ! (i,j)) of (3, _) -> 1 (4, 1) -> 1 (_, _) -> 0 where xs = [b ! ((i+m),(j+n)) | m <- [-1,0,1], n <- [-1,0,1]] updateBoard board@(Lattice m n v) = Lattice m n $! V.fromList [next board i j | i <- [0..m-1], j <- [0..n-1]] randomBoard rs x y = Lattice x y $ V.fromList $ take (x * y) rs main = do rs <- newMTGen Nothing >>= randoms let board = randomBoard (map (`mod` 2) rs) 500 500 print $ L.foldl' (\x _ -> updateBoard x) board [1..500] 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch