> >> - the lambda expressions can be written (input) but cannot
> >> be printed (output)
> > This is a fundamental property of the language. A lambda
> > expression is programme and at runtime the system doesn't
> > know one lambda expression from another (all it can do with
> > one is apply it to something).
> Even C can apply a function variable to an argument (function pointers).
Yes, and Haskell can do it also. But C, I guess, can't print out a source code for a function (well, there can be some weird dialects of C I'm not aware about). Haskell can't do it either.