haskell - Why is there no Show instance for functions? -


just quick conceptual question, trying learn , understand haskell better.

i know show function used convert values strings, why can't function types used show?

prelude> (\x -> x*3)  <interactive>:7:1:     no instance (show (a0 -> a0))       arising use of `print'     possible fix: add instance declaration (show (a0 -> a0))     in stmt of interactive ghci command: print prelude> 

it's not can't, there's not reason to.

but if you'd like, can:

prelude> :{ prelude| instance show (a -> b) prelude|    show _ = "a function." prelude| :} prelude> print (\x -> x + 7) function. prelude> print (\a b c -> + b + c) function. 

if you'd show textual representation of function, - can't that. unlike metaprogramming languages ruby, js, etc, haskell code little knowledge of own internals.


Comments

Popular posts from this blog

monitor web browser programmatically in Android? -

Shrink a YouTube video to responsive width -

wpf - PdfWriter.GetInstance throws System.NullReferenceException -