On Thu, Apr 17, 2008 at 03:21:16PM +1000, Alexis Hazell wrote:
> Hi all,
> 
> i'm having some trouble 'getting' functional dependencies in the Haskell
> context (although my understanding of them in the context of relational
> database theory isn't that great either). Could someone please point me
> to an introduction / tutorial in this regard? 

I think you've already tried www.haskell.org -> wiki search ?
http://haskell.org/haskellwiki/Functional_dependencies

        You can express this by specifying a functional dependency, or fundep 
for short:

        class Mult a b c | a b -> c where
          (*) :: a -> b -> c

        This tells Haskell that c is uniquely determined from a and b. 

So there you can't implement instances
Mult Int Char Sting
        and
Mult Int Char MyString

of course, your programs will work withou t that | a b -> c as well,
but you need to tell the compiler the result type of
(*) fac1 fac2
wheeras using fundeps it knows the result type becaus there can only be
one instance. (Which is what you want in this case when multiplying
matrizes as well.

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

Reply via email to