[Haskell-cafe] Adding new entry to list
Mrwibbly
Jackwaters89 at googlemail.com
Wed Jul 7 13:32:15 EDT 2010
Hi all I'm having a problem trying to add a new record to a list. I need to
be able to add a new record to the database. My code is below, I also need
to work out the total sales for everything in the Sales list.
As you can see, I've tried to do it but I can't seem to work it out.
type Title = String
type Artist = String
type Sold = Int
--type Record = (Title, (Artist, Sold))
type Sales = [(Title, Artist, Sold)]
testDatabase :: Sales
testDatabase = [("Kids", "MGMT", 3), ("This Charming Man", "The Smiths", 5),
("Gimme Shelter", "The Rolling Stones", 7)]
totalSales :: Sales -> Title -> Artist -> Sold
totalSales [] title artist = 0
--totalSales ((t,a,n):testDatabase) title artist = title artist
--addSale :: Sales -> Sales
--addSale (Title, Artist, sold) = (title, artist, sold + 1)
--newRecord :: String -> String -> Sales -> Sales
--newRecord testDatabase title artist = (title, artist) ++ testDatabase
--newRecordAction :: Sales -> IO()
--newRecordAction testDatabase = do
--putStrLn "Enter a new title: "
--title <- getLine
--putStrLn "Enter an artist: "
--artist <- getLine
--return $ newRecord title artist testDatabase
getTitle :: Sales -> Title
getTitle (title,_) = title
printNames :: Sales -> IO()
printNames testDatabase = mapM_ print testDatabase
mainLoop :: Sales -> IO()
mainLoop testDatabase = do
putStrLn "1 - Show all tracks in database"
putStrLn "2 - Exit"
putStrLn ""
putStrLn "Please select an option:"
input <- getLine
case read input of
1 -> do
putStrLn "------------------"
putStrLn "Show All Tracks"
putStrLn "------------------"
printNames testDatabase
putStrLn ""
mainLoop testDatabase
2 -> do
return ()
main :: IO()
main = mainLoop testDatabase
Thank you,
Jack
--
View this message in context: http://old.nabble.com/Adding-new-entry-to-list-tp29099032p29099032.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
More information about the Haskell-Cafe
mailing list