module skeleton4 /* Mart Lubbers s4109503 Charlie Gerhardus s3050009 */ import iTasks import Text // To check string length :: Idea:== String :: Name:== String :: NamedIdea = { name :: Name, idea :: [Idea]} derive class iTask NamedIdea // generic magic doIdentified :: (Name -> Task x) -> Task x | iTask x doIdentified task = enterInformation "Enter your name" [] >>= task editIdea :: Name -> Task NamedIdea editIdea name = enterInformation (name +++ " add your ideas") [] >>= \idea . return {name = name, idea = idea} mainTask = doIdentified editIdea >>= viewInformation "The result" [ ViewWith (\x=:{name,idea}.{x & idea=[name:fideas idea]})] where //Format the indices and the ideas fideas i = map (\(x,y).toString (x+1) +++ ": " +++ y) (filt i) //Filter the ideas on length and add indices filt i = zip2 (indexList i) (filter (\x.textSize x > 10) i) Start :: *World -> *World Start world = startEngine mainTask world