add a5 en remove binaries
[ap2015.git] / a4 / mart / skeleton4.icl
1 module skeleton4
2
3 /*
4 Mart Lubbers s4109503
5 Charlie Gerhardus s3050009
6 */
7
8 import iTasks
9 import Text // To check string length
10
11 :: Idea:== String
12 :: Name:== String
13
14 :: NamedIdea = { name :: Name, idea :: [Idea]}
15 derive class iTask NamedIdea // generic magic
16
17 doIdentified :: (Name -> Task x) -> Task x | iTask x
18 doIdentified task = enterInformation "Enter your name" [] >>= task
19
20 editIdea :: Name -> Task NamedIdea
21 editIdea name = enterInformation (name +++ " add your ideas") []
22 >>= \idea . return {name = name, idea = idea}
23
24 mainTask = doIdentified editIdea >>= viewInformation "The result" [
25 ViewWith (\x=:{name,idea}.{x & idea=[name:fideas idea]})]
26 where
27 //Format the indices and the ideas
28 fideas i = map (\(x,y).toString (x+1) +++ ": " +++ y) (filt i)
29 //Filter the ideas on length and add indices
30 filt i = zip2 (indexList i) (filter (\x.textSize x > 10) i)
31
32 Start :: *World -> *World
33 Start world = startEngine mainTask world