lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 25 Dec 2020, at 02:19, Dibyendu Majumdar <> wrote:

On Thu, 24 Dec 2020 at 22:23, <> wrote:

The Principle of Least Astonishment leads one to the position that type() ought not change in a way that is not backwardly compatible. One could make “newtype()” or, perhaps, have type() return two values (one of the existing values plus, optionally,  the __name field from the meta table)

That said, I do like the idea in principle & have done hacks similar to those described

In Ravi I added a new function that does this. I agree that leaving
the current type() function unchanged is better.


Definitely with the “don’t break existing type” folks.

I’ve also implemented type replacements to deal with custom objects in the past. I think a generic form of math.type() would be nice (better than adding table.type). Eg. Something like “subtype()” that would incorporate math.type() as well as a meta-method/field to detect a type.

Alternatively extend type() in a compatible way with a second parameter to indicate you want the sub-type.

My 2cts