From ca5e0414e96886177d883a249edd957d2331db65 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 28 Jan 2014 16:54:10 -0500 Subject: [PATCH] Add 'positive?' and 'negative?' as primitives. * module/language/tree-il/primitives.scm (*interesting-primitive-names*) (*effect-free-primitives*): Add 'positive?' and 'negative?'. (*primitive-expand-table*): Add primitive expanders for 'positive?' and 'negative?'. --- module/language/tree-il/primitives.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm index 15b5c44c9..f140eeca2 100644 --- a/module/language/tree-il/primitives.scm +++ b/module/language/tree-il/primitives.scm @@ -35,7 +35,7 @@ ;; When adding to this, be sure to update *multiply-valued-primitives* ;; if appropriate. -(define *interesting-primitive-names* +(define *interesting-primitive-names* '(apply @apply call-with-values @call-with-values call-with-current-continuation @call-with-current-continuation @@ -45,7 +45,7 @@ values eq? eqv? equal? memq memv - = < > <= >= zero? + = < > <= >= zero? positive? negative? + * - / 1- 1+ quotient remainder modulo ash logand logior logxor lognot not @@ -150,7 +150,7 @@ (define *effect-free-primitives* `(values eq? eqv? equal? - = < > <= >= zero? + = < > <= >= zero? positive? negative? ash logand logior logxor lognot + * - / 1- 1+ quotient remainder modulo not @@ -331,6 +331,12 @@ (define-primitive-expander zero? (x) (= x 0)) +(define-primitive-expander positive? (x) + (> x 0)) + +(define-primitive-expander negative? (x) + (< x 0)) + ;; FIXME: All the code that uses `const?' is redundant with `peval'. (define-primitive-expander + -- 2.20.1