> > All (all?) I'm proposing is to print them out.
> 
> Yes we do, and it's fine for the *implementation* to print such things out.
> But it is NOT fine to cross the dividing line of (1) the implementation, and
> (2) the language it implements. As I believe I have made abundantly clear
> a showFun function which exists *within* the language destroys many of our
> reasoning properties.

[and, taken out of order:]

> Now of course, when we look on the calculus *from the outside* then we can
> see into the internal structure of terms. So looking from the outside gives
> a richer view than looking in. So as I said before, it *is* ok for an
> implementation to provide information about the structure of closures
> etc., but it must not be done via a showFun function within the language.

I find this somewhat puzzling.  Why should a function, showFun, that
returns a representation of a function be any more fatal to reasoning
properties than a function that returns sentences from War and Peace?

> [...]

> Let's go back to the lambda calculus again. Here are some lambda terms
> which we may hope exist within the calculus. I state their defining
> property and whether such a term exists or not. The properties are
> universally quantified over ALL lambda terms E.
> 
>   a   E   =   E         Yes
>   b  [E]  =  [E]        Yes
>   c  [E]  =   E         Yes
>   d   E   =  [E]         NO
> 
> It's not that I am being restrictive, or hooked on semantics, or anything
> like that. It is simply a matter that no such lambda term exists. Try to
> write one if you like.

I suspect that the problem is that the operation is being described as
E -> [E].  If you think of it as returning a useful representation,
interpretation up the the user, what's the problem?

Note that I'm not saying showFun is a desirable addition to the
language.  There may be many (other) reasons for thinking it isn't.

-- jd

Reply via email to