* lisp/subr.el (oddp, evenp): Pure. % faster than logand.

This commit is contained in:
Mattias Engdegård 2025-02-19 19:58:17 +01:00
parent b481fbe92f
commit 5d5736ca75

View file

@ -567,16 +567,16 @@ was called."
(defun oddp (integer)
"Return t if INTEGER is odd."
(declare (ftype (function (integer) boolean))
(side-effect-free t)
(compiler-macro (lambda (_) `(eq (logand ,integer 1) 1))))
(eq (logand integer 1) 1))
(pure t) (side-effect-free t)
(compiler-macro (lambda (_) `(not (eq (% ,integer 2) 0)))))
(not (eq (% integer 2) 0)))
(defun evenp (integer)
"Return t if INTEGER is even."
(declare (ftype (function (integer) boolean))
(side-effect-free t)
(compiler-macro (lambda (_) `(eq (logand ,integer 1) 0))))
(eq (logand integer 1) 0))
(pure t) (side-effect-free t)
(compiler-macro (lambda (_) `(eq (% ,integer 2) 0))))
(eq (% integer 2) 0))
(defun fixnump (object)
"Return t if OBJECT is a fixnum."