5 Skeleton for assignment 4.
6 To be used in a project with the environment iTasks.
7 Pieter Koopman, pieter@cs.ru.nl
11 import StdArray // To check string length
16 :: NamedIdea = { name :: Name, idea :: [Idea]}
17 derive class iTask NamedIdea // generic magic
19 doIdentified :: (Name -> Task x) -> Task x | iTask x
20 doIdentified task = enterInformation "Enter your name" [] >>= task
22 editIdea :: Name -> Task NamedIdea
23 editIdea name = enterInformation (name +++ " add your ideas") []
24 >>= \idea . return {name = name, idea = idea}
26 mainTask = doIdentified editIdea >>= viewInformation "The result" [
27 ViewWith (\x=:{name,idea}.{x & idea=[name:fideas idea]})]
29 //Format the indices and the ideas
30 fideas i = map (\(x,y).toString (x+1) +++ ": " +++ y) (filt i)
31 //Filter the ideas on length and add indices
32 filt i = zip2 (indexList i) (filter (\x.size x > 10) i)
34 Start :: *World -> *World
35 Start world = startEngine mainTask world