Jean Louis <bugs@gnu.support> writes: >> Yes, and I think it's seriously wrong with >> >> : (+) >> -> NIL >> >> where its docs say >> >> Returns the sum of all num arguments. When one of the arguments >> evaluates to NIL, it is returned immediately. > > For some reason PicoLisp is quite different than other Lisp. I have > asked author about it. > > 15:09 <abu[m]> It is a "feature" that NIL propagates through > arithmetics
Well, but with (*) and (+), there is no single NIL involved! And in Elisp (+ nil), where actually a nil is involved, you get an error. > 15:09 <jmarciano> How does it help instead of providing identity > elements? > 15:09 <abu[m]> (*) especially was not contemplated though, it is a > pretty useless call > [...] > 15:12 <abu[m]> What is a call like (*) useful for? > > As you see, author also asked naturally why is it useful. So go and ask why he thinks (apply '+ ()) -> NIL is more useful than 0 given that the sum of the empty set of numbers _is_ 0. >> So why does it return NIL? And why do you apparently consider that >> useful? And can something be useful even though it is incorrect? > > I find it right as with error raising or nil I can find what is > wrong. It's good to signal an error when the expression is wrong as does Elisp with (+ nil) (* 1 2 nil) (apply #'+ (list 1 nil 19)) (+ 2 "i am not a number") but when there is no nil or otherwise wrongly typed value involved, there's nothing to signal. Bye, Tassilo