[Haskell-cafe] Printing and Referential transparency excuse

Henning Thielemann lemming at henning-thielemann.de
Tue Dec 25 03:40:19 EST 2007


On Mon, 24 Dec 2007, Cristian Baboi wrote:

> While reading the Haskell language report I noticed that function type is
> not an instance of class Read.
>
> I was told that one cannot define them as an instance of class Show
> without breaking "referential transparency" or printing a constant.
>
>    f :: (a->b)->String
>    f x = "bla bla bla"
>
> 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 ?

Like 'show' generating
  "[(0,0), (1,1), (4,2), (9,3),
 for 'sqrt', 'read' could parse only value tables.


More information about the Haskell-Cafe mailing list