2009/5/6 Bulat Ziganshin <bulat.zigans...@gmail.com>:
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-Function-Predicate.html>:
filmsInGivenYear filmYear = filter (year `equals` filmYear)

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to