On Sat, 11 Aug 2018 11:29:41 +0200
Pablo Rodriguez
On 08/09/2018 10:16 PM, Alan Braslau wrote:
On Thu, 9 Aug 2018 22:00:48 +0200 Pablo Rodriguez
wrote: I guess that backwards compatibility should be important here, but I hope there are stronger reasons for breaking it.
tonumber() provides backwards compatibility. And the recommendation to use it was in the third edition (of the lua book), if not before, referring to 5.2.
I realize that the fault is mine, but with backwards compatibility I meant that the same operation (10 + "10") gives different results with different Lua versions.
Pablo
"Bad" coding can be expected to give unpredictable results. The creators of lua thought that automatic string conversion would be useful (and I believe that they got this feature from "awk", which itself may have gotten this from some previous scripting language). But they learned that automatic string conversion often creates more problems than it solves, so they recommend using explicit conversion through tonumber(). Lua is a very beautiful and powerful language, and it gives me surprises all of the time. Much of what Hans does I like to call "lua magic" meaning that I sort-of understand it but am impressed each time. Does this make lua a poor (problematic) scripting language? I think like all powerful tools, one must take care in their use. Alan