initial start with week3, wine yay
[fp1415.git] / fp2 / week3 / mart / GetallenRaden.icl
1 module GetallenRaden
2
3 /* Dynamics werken alleen met de 32-bit versie van de Clean compiler.
4 (*) Gebruik Environment 'Experimental'
5 (*) In Project:Project Options: zet vlag 'Enable dynamics' aan
6 */
7 import StdEnv
8 import StdDynamic, StdDynamicFileIO // nodig voor dynamics en dynamics in files
9 import StdFileSelect // platform file-selector dialoog
10
11 // Generation program
12 //fib :: [Int]
13 //fib = [fib` i \\ i <- [0..]]
14 // where
15 // fib` 0 = 0
16 // fib` 1 = 1
17 // fib` n = fib` (n-1) + fib` (n-2)
18 //
19 //Start :: *World -> (Bool, *World)
20 //Start world = writeDynamic "fib" (dynamic fib) world
21
22 makeSeq :: Dynamic -> [Int]
23 makeSeq (x :: [Int]) = x
24 makeSeq _ = abort "You selected a file not containing a sequence"
25
26 loadSeq :: String *World -> *([Int], *World)
27 loadSeq s world
28 # s = let l = size s in s % (0, l-5)
29 # (ok, dyn, world) = readDynamic s world
30 | not ok = abort "You didn't select a dynamic file"
31 | otherwise = (makeSeq dyn, world)
32
33 Start :: *World -> ([Int], *World)
34 Start world
35 # (inputfilepath, world) = selectInputFile world
36 | isNothing inputfilepath = abort "Please select a file"
37 # (sequence, world) = loadSeq (fromJust inputfilepath) world
38 | otherwise = (take 20 sequence, world)