[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: special forms, take two (was Re: A lua version of "amb")
- From: Dirk Laurie <dirk.laurie@...>
- Date: Wed, 29 Feb 2012 19:37:42 +0200
>>> This is one of those cases where function declaration syntax inside a
>>> table would work for some kinds of use too:
>>>
>>> switch(c, {
>>> function p() print(a) end;
>>> function q() os.exit() end;
>>> function e() eval(args) end;
>>> })
>>>
>>> but that's dependent on the cases being suitable as table keys.
>>
>> I.e. the cases must not be nil of NaN?
>
> How did the nil make it past my assert?
>
OK, my point was put too cryptically. Let's try again.
You said: "dependent on the cases being suitable as table keys".
But _all_ Lua values, except nil and NaN, are valid table keys.
For example,
tbl = { [function(a) print(a) end] = 'just print it' }
is valid, and `next(tbl)"hello"` prints "hello".
So, I don't understand what you mean by "dependent on the cases being
suitable as table keys".
- References:
- A lua version of "amb", Xavier Wang
- special forms, take two (was Re: A lua version of "amb"), Jay Carlson
- Re: special forms, take two (was Re: A lua version of "amb"), Fabien
- Re: special forms, take two (was Re: A lua version of "amb"), Jay Carlson
- Re: special forms, take two (was Re: A lua version of "amb"), Dirk Laurie
- Re: special forms, take two (was Re: A lua version of "amb"), Jay Carlson