
At Sat, 9 May 2009 04:54:13 -0700 (PDT), applebiz89 wrote:
Could anyone look at this segment of code; it's not compiling wondering if anyone could correct me as to why. Thanks
There is a ton of things wrong with that code. I have attached a version that at least compiles, but there are still a bunch of things that are wrong. -- Film as datatype type Title = String type Director = String type Year = Int type Fan = String data Film = Film Title Director Year [Fan] -- List of films testDatabase :: [Film] testDatabase = [(Film "Casino Royale" "Martin Campbell" 2006 ["Garry","Dave", "Zoe"]) ] becomeFan :: Title -> Fan -> [Film] -> [Film] becomeFan _ _ [] = [] becomeFan title' fanName (film@(Film title director year fans) : films) | title == title' = (Film title director year (fanName:fans)) : films | otherwise = film : becomeFan title' fanName films insertFilm = undefined numberOfFans = undefined filmsInGivenYear= undefined givenUser = undefined mainLoop :: [Film] -> IO() mainLoop db = do putStr "Hi there! what is your name: " fanName <- getLine putStr "1 = Insert film, 2 = Become a Fan, 3 = The number of fans of a film, 4 = Film released in a year, 5 = Given fan, 6 = Stop : " input <- getLine let x = read input :: Int if x == 1 then do putStr "Enter film title: " filmTitle <- getLine putStr "Enter director name: " filmDirector <- getLine putStr "Enter release year: " filmYear <- fmap read getLine mainLoop $ insertFilm (Film filmTitle filmDirector filmYear []) db else if x == 2 then do putStr "Enter film title: " filmTitle <- getLine putStr "Enter fan name: " fanName <- getLine mainLoop $ becomeFan filmTitle fanName db else if x == 3 then do putStr "Enter film title: " filmTitle <- getLine mainLoop $ numberOfFans filmTitle db else if x == 4 then do putStr "Enter film release year: " filmYear <- getLine mainLoop $ filmsInGivenYear filmYear db else if x == 5 then do putStr "Enter the fan name: " fanName <- getLine mainLoop $ givenUser fanName db else if x == 6 then return () else return () main :: IO () main = mainLoop testDatabase