On Sat, 11 Aug 2018 11:29:41 +0200
Pablo Rodriguez <oi...@gmx.es> wrote:
> On 08/09/2018 10:16 PM, Alan Braslau wrote:
> > On Thu, 9 Aug 2018 22:00:48 +0200
> > Pablo Rodriguez <oi...@gmx.es> 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.
"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.
If your question is of interest to others as well, please add an entry to the
maillist : firstname.lastname@example.org / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net