emacs-tangents
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (*) -> 1


From: Tassilo Horn
Subject: Re: (*) -> 1
Date: Fri, 20 Jan 2023 14:02:43 +0100
User-agent: mu4e 1.9.16; emacs 30.0.50

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]