[Haskell-cafe] Typeclasses, data, constructors
Sergiy Nazarenko
nazarenko.sergiy at gmail.com
Wed Jul 27 10:45:32 CEST 2011
Hi everyone!
I have data declaration like this:
data MyTable = MyTableOne Int String | MyTableTwo Int String String
and function that insert new row in tables:
newRow :: MyTable -> IO Int
newRow (MyTableOne fld1 fld2 ) = .....
newRow (MyTableTwo fld1 fld2 fld3 ) = ......
That work perfectly, I enjoy it. But now I want to get rows, and I don't
know what to do :( I want func something like this:
getRow :: Int -> [MyTable]
.... - what should I write here ?
Possibly use this function:
getRow 23 :: MyTableTwo
(like haskell function Read for example: read "7" :: Int)
I try to use typeclasses,
class GetRow a where
hasID :: Int -> IO a
instance GetRow MyTableOne where
hasID myid = return [(MyTableOne 1 "name")]
instance GetRow MyTableTwo where
hasID myid = return [(MyTableTwo 1 "name" "path")]
But I have error:
Not in scope: type constructor or class `MyTableOne'
make: *** [Foo.so] Error 1
Not in scope: type constructor or class `MyTableTwo'
make: *** [Foo.so] Error 1
I ask you to suggest me right way in my efforts
Cheers!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110727/59397664/attachment.htm>
More information about the Haskell-Cafe
mailing list