On Tue, 25 Dec 2007 11:05:59 +0200, Derek Elkins
<[EMAIL PROTECTED]> wrote:
On Mon, 2007-12-24 at 11:15 +0200, Cristian Baboi wrote:
How can I define a function to do the inverse operation ?
g :: String -> ( a -> b )
This time I cannot see how referential transparency will deny it.
What's the excuse now ?
Referential transparency has nothing to with this. The problem here is
parametricity. However, if you give a non-parametric type (or add
appropriate class constraints on a and b, or add (phantom) type
information to the input), e.g. String -> (Int -> Int) then there is no
trouble at all.
Thank you.
I finished reading the Haskell Language Report and I noticed that the
class Show and Read are "toys".
I'll try to define some String -> (a -> b) functions some other time.
I wonder if parametricity is the only problem.
I guess that I'll have some problem with the arity of the result, but
currying may help.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe