
On Tue, May 12, 2009 at 9:59 AM, applebiz89
I have compiled each function independently and they have compiled the only problem is the main function..
I keep getting the error 'films not defined' and I am not sure why
[code]
type Title = String type Director = String type Year = Int type Fan = String
data Film = Film Title Director Year [Fan] deriving Show
-- List of films
testDatabase :: [Film] testDatabase = [ (Film "Casino Royale" "Martin Campbell" 2006 ["Garry", "Dave", "Zoe"])]
-- Function
filmsInGivenYear :: Year -> [Film] -> [String] filmsInGivenYear year' films = [ title | (Film title director year fans) <- films, year == year']
doFilmsInGivenYear :: [Film] -> IO () doFilmsInGivenYear films = do putStrLn "which year?" text <- getLine let year' = read text :: Int let answer = filmsInGivenYear year' films print answer
main :: IO () main = do doFilmsInGivenYear films main
[/code]
if the other functions are compiling without this error im not sure as to why the main function does not compile because of the films...any light on this?
Thanks
When you say 'doFilmsInGivenYear films', where does the variable 'films' come from? It's not defined anywhere in your program. That's what the compiler is complaining about. Alex