Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #20019

Re: !0 versus true

Message-ID <3158186.8TiyjIphOr@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2013-05-28 21:14 +0200
Subject Re: !0 versus true
Newsgroups comp.lang.javascript
References (7 earlier) <ed180bb2-f6be-48dc-941a-adb647bd9b6c@h5g2000vbg.googlegroups.com> <5260436.L7RB4VL119@PointedEars.de> <eba22a46-75ad-4d8f-8cf3-e1dfbaa28743@c7g2000vbv.googlegroups.com> <uaf9q855bh9uri9q6o10oa2oqi7n6lp3r7@4ax.com> <025995e5-77c4-42e0-9c2d-60607ed970e9@2g2000yqr.googlegroups.com>

Show all headers | View raw


Scott Sauyet wrote:

> John Harris wrote:
>> Scott Sauyet wrote:
>> <snip>
>>> <http://scott.sauyet.com/Javascript/Demo/2013-05-27a/>
>>> <http://scott.sauyet.com/Javascript/Demo/2013-05-27b/>
>>>
>>> In all browsers I tested, the programs displayed different behavior,
>>> even though the two programs are identical except that one expression
>>> has been replaced by an equivalent one in the second.
>> <snip>
>>
>> Name the functions in the two examples f and g to lessen the
>> confusion.
> 
> That would only confuse the point.  The point is that the only
> difference between the two programs is the substitution of `0` in the
> second for the equivalent `+!1` in the first.  Nonetheless the two
> programs have different behavior.  Making an additional change by
> changing the name of the function would muddy the waters.

You are the one who is muddying the waters here.

The point is that you continue to fail to differentiate between

  A) an expression

and

  B) the string representation of the function that contains it.

The expression is evaluated to the return value of the function by the 
*compiler/interpreter* not before the function is *called*; its equivalence 
to another expression in that context means that the evaluation of the 
expression for the return value results in the same (identical) value.

In short, the return values of the functions are the same, therefore the 
expressions leading to the return values are (value-)equivalent and the 
functions are functional equivalent.  The functions themselves are obviously 
not value-equivalent per se (as indicated by the possibility of different 
string representations), but then again nobody but you claimed they should.  

It is that difference, and that change of context involved, that you fail to 
comprehend, and that you ignore so that you can make the knee-jerk statement 
of a “reduced usefulness” of the textbook definition of (expression) 
equivalence.

>> You are saying that when  f()  and  g()  are 'equivalent' expressions
>> then  f.toString()  should be 'equivalent' to  g.toString()  for
>> equivalence to be a useful concept.
> 
> Not at all.

Yes, you are.
 
> The real point is that the equivalence of expressions is less useful
> in Javascript than in many other languages.
     ^^^^^^^^^^
Utter nonsense, twofold.  Assuming “Javascript” as a misnomer for 
“ECMAScript implementations”, you of all people should know that those 
languages are not the only languages in which functions are first-class 
objects.  It is negatively surprising to me how little you understand both 
ECMAScript implementations and pure functional programming languages, yet 
you are attempting to implement – unnecessarily – “functional programming” 
in ECMAScript.

> Automatic minification based upon it can break programs that take
> advantage of this weird quirk of the language.  Perhaps the only answer is
> Thomas' assertion that, "ECMAScript programs which rely on function
> serialization are deeply flawed."  But this does mean that automated
> minification can possibly wreak havoc with certain code.

Yes, and it means that you have still not understood the not-that-difficult 
concept of equivalence (of expressions in a computer program).

> > The equivalence of expressions is not the same as the equivalence of
> > objects.
> 
> Shame on you; I think you've been listening to Thomas.  :-) […]

How many people explaining to you that you are wrong does it take before you 
can see that you are wrong?

| Have you never, even once, considered the possibility that someone who
| disagrees might understand the subject in as much depth as you do and
| still have reached a different conclusion?
  – Scott Sauyet in
    <news:ed180bb2-f6be-48dc-941a-adb647bd9b6c@h5g2000vbg.googlegroups.com>

Probably you are either not smart enough for this, or you are trolling.

-- 
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

!0 versus true Andrew Poulos <ap_prog@hotmail.com> - 2013-05-23 23:31 +1000
  Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-23 07:58 -0700
  Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-23 17:53 +0200
    Re: !0 versus true Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-24 12:17 -0700
      Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-24 21:56 +0200
        Re: !0 versus true Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-24 13:13 -0700
          Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-24 22:23 +0200
      Re: !0 versus true Denis McMahon <denismfmcmahon@gmail.com> - 2013-05-24 22:08 +0000
        Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-25 07:00 +0200
          Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-25 20:04 -0700
            Re: !0 versus true "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-05-26 11:07 +0200
            Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-26 13:11 +0200
              Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-26 13:28 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-27 12:07 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-27 11:27 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-27 23:30 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-27 17:12 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-28 02:40 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-27 20:29 -0700
                Re: !0 versus true John Harris <niam@jghnorth.org.uk.invalid> - 2013-05-28 15:38 +0100
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-28 08:32 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-28 21:14 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-28 15:38 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-29 13:20 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-29 06:37 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-29 16:28 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-29 13:32 -0700
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-29 23:34 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-30 06:30 -0700
                Re: !0 versus true John Harris <niam@jghnorth.org.uk.invalid> - 2013-05-29 17:33 +0100
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-29 11:34 -0700
                Re: !0 versus true John Harris <niam@jghnorth.org.uk.invalid> - 2013-05-31 10:22 +0100
                Re: !0 versus true Christoph Becker <cmbecker69@gmx.de> - 2013-05-31 13:04 +0200
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-31 18:13 +0200
                Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-31 18:16 +0200
                Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-05-31 07:25 -0700
  Re: !0 versus true imma harper <immaterial_uk@yahoo.co.uk> - 2013-05-31 09:46 -0700
    Re: !0 versus true Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-31 21:38 +0200
    Re: !0 versus true John Harris <niam@jghnorth.org.uk.invalid> - 2013-06-01 17:37 +0100
  Re: !0 versus true Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-06-02 21:03 +0100
    Re: !0 versus true Scott Sauyet <scott.sauyet@gmail.com> - 2013-06-03 04:45 -0700
      Re: !0 versus true Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-06-04 17:23 +0100

csiph-web