help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: no empty (zero) string predicate in Elisp


From: Stefan Monnier
Subject: Re: no empty (zero) string predicate in Elisp
Date: Sat, 25 Apr 2015 22:52:00 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

> Both for fundamental reasons, cardinals are built from a zero and a
> successor relationship, therefore a predicate for zero is not stupid,
> and a 1+ function neither;

I know that you can model natural numbers from 0 and successor, but
Elisp integers have very little to do with it and are not encoded in
this way, and there isn't much code around that looks at them this way.
So, as much as I like this way to look at the world, I don't find it
helpful for Elisp.

> and for optimization reasons on simplistic
> compilers: the hardware usually HAS specific (and optimized)
> instructions to test for zero and another to increment.

C-h f zerop RET says:

   zerop is a compiled Lisp function in `subr.el'.
   [...]
   This function has a compiler macro `zerop--anon-cmacro'.
   
and if you look at this mysterious zerop--anon-cmacro, you'll see that
it optimizes `zerop' by rewriting it to (= 0 ...), which is implemented
more efficiently.


        Stefan




reply via email to

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