module GetallenRaden /* Dynamics werken alleen met de 32-bit versie van de Clean compiler. (*) Gebruik Environment 'Experimental' (*) In Project:Project Options: zet vlag 'Enable dynamics' aan */ import StdEnv import StdDynamic, StdDynamicFileIO // nodig voor dynamics en dynamics in files import StdFileSelect // platform file-selector dialoog // Generation program //fib :: [Int] //fib = [fib` i \\ i <- [0..]] // where // fib` 0 = 0 // fib` 1 = 1 // fib` n = fib` (n-1) + fib` (n-2) // //Start :: *World -> (Bool, *World) //Start world = writeDynamic "fib" (dynamic fib) world makeSeq :: Dynamic -> [Int] makeSeq (x :: [Int]) = x makeSeq _ = abort "You selected a file not containing a sequence" loadSeq :: String *World -> *([Int], *World) loadSeq s world # s = let l = size s in s % (0, l-5) # (ok, dyn, world) = readDynamic s world | not ok = abort "You didn't select a dynamic file" | otherwise = (makeSeq dyn, world) Start :: *World -> ([Int], *World) Start world # (inputfilepath, world) = selectInputFile world | isNothing inputfilepath = abort "Please select a file" # (sequence, world) = loadSeq (fromJust inputfilepath) world | otherwise = (take 20 sequence, world)