newLISP Fan Club

Forum => newLISP in the real world => Topic started by: Jian Leng on January 23, 2015, 06:30:21 PM

Title: bug of newLISP v.10.6.0
Post by: Jian Leng on January 23, 2015, 06:30:21 PM
Hi NewLisper,



I found the predicate number? has a bug.

when input number? 2323abc, it will return

true. So I think its a bug.



David
Title: Re: bug of newLISP v.10.6.0
Post by: rickyboy on January 23, 2015, 07:47:12 PM
It's not a bug.  2323 is a number.
Title: Re: bug of newLISP v.10.6.0
Post by: rickyboy on January 23, 2015, 07:57:13 PM
:)



The TLDR is that newlisp parses 2323abc as two atoms, namely the integer 2323 and the symbol abc.  Finally, the primitive number? only reads its first argument (and ignores any additional arguments).  So saying


(symbol? 2323abc)
is the same as saying


(symbol? 2323 abc)
Title: Re: bug of newLISP v.10.6.0
Post by: Jian Leng on January 23, 2015, 09:14:00 PM
I see. Thanks a lot.



David
Title: Re: bug of newLISP v.10.6.0
Post by: xytroxon on January 24, 2015, 12:24:40 AM
That is not always a good "feature"...

> (setq abc 123OX 456)
456
> abc
123   ; abc  should be 1230
> X
nil   ; X should be 456

In the dyslexic process of anticipating to shift to type the "X" key, I hit the "O" (oh) key  instead of the "0"  (zero) key. (aka "toushie" typing ;o) Parser missed an error it might/should have caught by enforcing whitespace separation at the end of a numerical value.



> OX
> 456 ; There it is!!!


-- xytroxon
Title: Re: bug of newLISP v.10.6.0
Post by: Lutz on January 25, 2015, 06:53:48 AM
The way newLISP parses numbers is practical when parsing normal text. Numbers are often followed by unit identifiers, e.g.:



> (parse "length 100cm")
("length" "100" "cm")
> (parse "temperature is 100°")
("temperature" "is" "100" "°")
> (parse "weight is 10lbs")
("weight" "is" "10" "lbs")
> (parse "100$")
("100" "$")
> (parse "100¥")
("100" "¥")
> (parse "100€")
("100" "€")
> (parse "100e3€")
("100e3" "€")
> 100e3
100000
Title: Re: bug of newLISP v.10.6.0
Post by: xytroxon on January 25, 2015, 11:48:27 PM
Please add a few of those examples to the parse section of the newLISP manual.



We humans are not well-versed in these advanced logic designs of the Krell*...



-- xytroxon



*//http://en.wikipedia.org/wiki/Krell