Hi Jon,
If you read the docs carefully, you may know that (gt0 X) and ( X
0) are NOT equivalent. This is my small observation today:
X:1 T
---
(gt0 X) - 1 NIL
( X 0) - T T
Yes, very true. Thanks for reminding about it!
This is in fact the intended behavior. Perhaps I should add some
explanation.
1. '' is a function for general comparisons, not only for numbers but
for any data type. As described in
http://software-lab.de/doc/ref.html#cmp
all data in PicoLisp have a well-defined ordinal relationship. This
defines that
NIL numbers symbols lists T
As a result, both '1' and 'T' are greater than '0'.
2. 'gt0', on the other hand, is a predicate for numbers greater zero:
http://software-lab.de/doc/refG.html
Thus, it returns the numeric argument for '1', and 'NIL' for any non-
numeric argument.
BTW, eeturning the argument itself instead of simply 'T' is very
convenient in many situations, e.g.
(while (gt0 (foo)) # No need to store the result of (foo)
(bar @) )# in a local variable
Have a nice weekend!
Thanks, you too!
♪♫ Alex
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe