[Haskell-cafe] Getting started - help
applebiz89
applebiz89 at hotmail.com
Thu Apr 30 11:04:46 EDT 2009
Hey thanks, that was really helpful actually. I know it must be annoying for
you, and im sorry but ive done what you said, try and compile it to see if
it does and fix it. I have tried every possible way of using brackets in
different place's etc (as u can tell Im not good with haskell at all) but it
still isnt, it must be to do with my data type.
-- Film as datatype
data Film = String String Int [String]
-- List of films
testDatabase :: [Film]
testDatabase = ["Casino Royale", "Martin Campbell" ,2006, ["Garry", "Dave",
"Zoe"] ]
I get this error:
*** Expression : ["Casino Royale","Martin
Campbell",2006,[("Garry","Dave","Zoe")]]
*** Term : [("Garry","Dave","Zoe")]
*** Type : [([Char],[Char],[Char])]
*** Does not match : [Char]
Thanks alot!
applebiz
Tillmann Rendel-3 wrote:
>
> Hi,
>
> applebiz89 wrote:
>> data Film = Film String String Int String
>>
>> with this as the data.
>>
>> testDatabase :: [Film]
>> testDatabase = [("Casino Royale", "Martin Campbell",2006, "Garry, Dave,
>> Zoe")]
>
> Try to compile this part of the program, to get a feeling for whether
> you are on the right track. If it does not compile, try to find out
> what's wrong and correct it so that it compiles.
>
> As you already noted in a different mail, you plan to change the
> representation of the list of fans to a list of strings (instead of a
> single string with commas). That is a good idea! So change the data
> declaration, and change the definition of testDatabase to this new
> design. Try to compile that program.
>
>
> Now you can add some utility functions to work with your database. This
> will make it much easier to write a correct user interface later. For
> example, write a function
>
> isFan :: [Film] -> String -> String -> Bool
>
> which checks whether someone is a fan of a film in your database. In
> other words,
>
> isFan testDatabase "Garry" "Casino Royale"
>
> should be True, but
>
> isFan testDatabase "Peter" "Matrix"
>
> should be False.
>
>
> Another useful utility function could be
>
> becomeFan :: String -> String -> [Film] -> [Film]
>
> which adds the information that someone is a fan of some film to an
> existing database. Note that this function does not do any user
> interaction, but gets the name of the fan and the name of the film as
> arguments.
>
> Think about which other utility functions you could use. Try them out in
> ghci. When you have done that, you can write a user interface which asks
> for input on the command line and uses the utility functions to keep
> track of the current database.
>
> Tillmann
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
--
View this message in context: http://www.nabble.com/Getting-started---help-tp23314466p23318195.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
More information about the Haskell-Cafe
mailing list