diff options
| author | Daniel Cerqueira <dan.git@lispclub.com> | 2026-08-17 10:56:31 +0100 |
|---|---|---|
| committer | Daniel Cerqueira <dan.git@lispclub.com> | 2026-08-17 11:25:52 +0100 |
| commit | ed7dfeecb709723aa90259d67c3db49623f065a5 (patch) | |
| tree | 17a918c14592707e921a5807c33144c4e2addbe9 | |
| parent | d653fc6500f5a09eb509edf7ad0599ab1632ddc1 (diff) | |
add plural defun predicate
| -rw-r--r-- | README.md | 12 | ||||
| -rw-r--r-- | liblali.c | 2 |
2 files changed, 12 insertions, 2 deletions
@@ -187,11 +187,19 @@ otherwise `f`: (singul t) ; t (singul '(a b)) ; f -`(zerop x)` returns `t` if `x` is the number zero, otherwise `f`: +`(zerop x)` returns `t` if `x` is the number positive zero, otherwise `f`: (zerop +0) ; t (zerop +1) ; f - (zerop t) ; error: t is not a number + (zerop -0) ; f + (zerop 'a) ; f + +`(plural x)` returns `t` if `x` is not the number positive zero, otherwise `f`: + + (plural +0) ; f + (plural +1) ; t + (plural -0) ; t + (plural 'a) ; t ### Logical operations @@ -1672,6 +1672,8 @@ static char *stdlib = LISP( (defun zerop (x) (not (diff x +0))) + (defun plural (x) (diff x +0)) + (defmacro and args (fill ((algo args) t) ((algo (cdr args)) (car args)) |
