[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Why are these functions not equal?
- From: Coda Highland <chighland@...>
- Date: Sat, 29 Mar 2014 00:43:14 -0700
On Sat, Mar 29, 2014 at 12:41 AM, Dirk Laurie <firstname.lastname@example.org> wrote:
> 2014-03-29 9:35 GMT+02:00 Coda Highland <email@example.com>:
>> On Sat, Mar 29, 2014 at 12:17 AM, Dirk Laurie <firstname.lastname@example.org> wrote:
>>> The Lua 5.2 manual says:
>>>> Equality between function values has changed. Now, a function definition
>>>> may not create a new value; it may reuse some previous value if there is
>>>> no observable difference to the new function.
>>> This remark says "may". It is surprising that in the simplest possible case,
>>> it does not happen.
>>> $ lua
>>> Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio
>>>> x=function() end; y=function() end
>> Is this a quiz question or a legit one? Because I know the answer.
> Well, I don't!
Answer: Their upvalues differ. The function stored in y has x as an
upvalue; the function stored in x does not.