On Mon, Feb 18, 2013 at 12:06 PM, Boyko Bantchev <[email protected]> wrote:
>> I think that it's relevant since your original post in this thread
>> http://jsoftware.com/pipermail/programming/2013-February/031561.html
>> opened by claiming that a page discussing Graham's challenge was
>> false.
>
> That the said page discusses Graham's challenge is irrelevant, too,
> because I didn't discuss it – my only concern was what that page said
> of closures, precisely because that statement was rather general.
> And if any meaning at all can be ascribed to the phrase 'claiming
> that a page discussing Graham's challenge was false', then this phrase
> is blatantly untruthful to what I actually said.

While I agree with a number of points you made (including, on reading
back, some of the things that I originally had issues with), I think
you are losing too much context, here.

I will agree that your original statement was valid in the context of
the terminology used to describe a language like Haskell.  However,
for Haskell to address the challenge being discussed at
http://www.jsoftware.com/jwiki/Guides/Lexical%20Closure we adopt the
conceit that the universe (or at least some part of it) can be thought
of as a part of a function argument and as a part of the function
result.  Of course, there are significant constraints on this
abstraction, but I do not think it's valid to ignore this issue when
trying to apply Haskell terminology in discussions of involving
languages with different designs.

Put differently: the word "closure" itself has multiple (albeit,
related) meanings, depending on context, so I think that it's wrong to
declare that context is irrelevant even if you wanted to ignore it.
This is a generic issue with english, so it also applies for other
words (and I recognize that this includes 'function').

Also, I think that you have abused the phrase "because that function
has a changeable state". In Haskell, this would mean that there's a
thing we call "changeable state" which is an argument to the function
but your presentation of this idea in this thread has seemed to me to
be declaring that state somehow is an intrinsic part of the function
as opposed to being an argument.  But I am at a loss, to discuss this
with you, because (a) Haskell's design is supposed to make this issue
clear, and (b) when I try to raise the issue you attribute this issue
to personal failings on my part.

In other words, a Haskell function instance 'f' which depends on the
value of 'x' which closes over some value for 'x' is different from a
Haskell function instance 'f' which closes over some other value for
'x' if the difference in 'x' has any influence on the result of 'f'.
This is true even when all other things are the same.  Thus they are,
at a fundamental level, different functions, even though they both are
identified by the name 'f'.  This issue arises extremely frequently,
in Haskell, which means people adopt linguistic shortcuts which gloss
over the issue - but those linguistic shortcuts lose track of why this
design was adopted in the first place.

That said... I do recognize that some (perhaps many) of my responses
in this thread are not adequately consistent with how a current
Haskell community might use its technical terms.  But since much of
the discussion passed without even raising Haskell as a part of the
context, I am at least moderately comfortable with that failure.

If I had known back at the start what I know now, I think I would have
just pointed out that you were assuming a Haskell-like context for the
discussion, and left it at that.

But I'm not sure how I can discuss this kind of issue with you.  Do
you have any suggestions?  Or maybe I should just recognize that I've
said my bit, and that we have nothing left to discuss?

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to