[Haskell-cafe] Re: Printing and Referential transparency excuse

apfelmus apfelmus at quantentunnel.de
Mon Dec 24 04:27:11 EST 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 ?

The new excuse is that a better name for  g  is

   full-fledged-compiler :: String -> (Int -> Int)

(the function returned by  g  better not have a polymorphic type). Which 
programming language should the argument  String  be written in?


More information about the Haskell-Cafe mailing list