
2009/5/6 Bulat Ziganshin
Hello applebiz89,
Tuesday, May 5, 2009, 7:20:35 PM, you wrote:
filmsInGivenYear :: Int -> [Film] -> [String] filmsInGivenYear filmYear ?= [ title | year <- (Film title director year fans) , year == filmYear] (this code wont compile - error given '?Syntax error in expression (unexpected `;', possibly due to bad layout)')
you forget films list variable:
filmsInGivenYear filmYear films = [ title | (Film title director year fans) <- films, year == filmYear]
And this is nicer if you define Film with records: -- just guessing as to types data Film = Film { title :: String, director :: String, year :: Int, fans :: [Fan] } filmsInGivenYear filmYear films = [title | film <- films, year film == filmYear] -- and then it's probably easier written as: filmsInGivenYear filmYear films = filter (\film -> year film == filmYear) films -- or slightly simpler: filmsInGivenYear filmYear = filter (\film -> year film == filmYear) -- or with Data.Function.Predicate (shameless plug) http://hackage.haskell.org/packages/archive/predicates/0.1/doc/html/Data-Fun...: filmsInGivenYear filmYear = filter (year `equals` filmYear)