Earlier quoted context omitted.
The above is a false statement because if we say A is "true" then the statement becomes "true != true" which is obviously a false statement. In fact if we put anything in the place of A the results are the same. If, however, you wish to communicate the evaluation of a function such as "now()", then you would express that as two invocations of that function now() != now() or t != t' or simply A != B So simply using 'A…
I am not looking for an a debate; or to be “set straight”. I am telling you that in my model what I am saying is true . Yes I am talking about function invocation. In Ruby: a = lambda { Time.now } a.call != a.call Or… x = “Time.now != Time.now” eval(x) == true Not to get bogged down in any particular notation/syntax… I am expressing the same thing in different ways. f() != f() !( f() == f() ) A != A Now is not now. I…
f() != f()
And it's not hard to find an f that will satisfy this. This is not surprising or insightful to anyone with programming experience.Do note two things:
The notation f.call is the same as f(), i.e. function invocation. You're not comparing functions but invoking them and comparing their results.
I don't know the equivalent syntax in Ruby, but in other languages the following is always true:
f == f
That is, comparing the actual function (something that is constant even if the function is impure) instead of invoking it twice and comparing the results.Note that the assertion "two things that are not the same might be different" is completely unsurprising. We're just letting syntax confuse us in this discussion.