5 Charlie Gerhardus s3050009
9 import Text // To check string length
14 :: NamedIdea = { name :: Name, idea :: [Idea]}
15 derive class iTask NamedIdea // generic magic
17 doIdentified :: (Name -> Task x) -> Task x | iTask x
18 doIdentified task = enterInformation "Enter your name" [] >>= task
20 editIdea :: Name -> Task NamedIdea
21 editIdea name = enterInformation (name +++ " add your ideas") []
22 >>= \idea . return {name = name, idea = idea}
24 mainTask = doIdentified editIdea >>= viewInformation "The result" [
25 ViewWith (\x=:{name,idea}.{x & idea=[name:fideas idea]})]
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)
32 Start :: *World -> *World
33 Start world = startEngine mainTask world