From d9ebacf5e9caf8a686cdc131d90bcdc4d812722d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 2 Nov 2021 07:17:39 -0700 Subject: compiler: rephrase length check with tree-case. * stdlib/compiler.tl (compiler comp-arith-neg-form): Instead of the length check on the form, we can use a tree case to require three argument. --- stdlib/compiler.tl | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl index 5330161d..52a0b85a 100644 --- a/stdlib/compiler.tl +++ b/stdlib/compiler.tl @@ -1261,13 +1261,12 @@ me.(comp-fun-form oreg env form))) (defmeth compiler comp-arith-neg-form (me oreg env form) - (if (> (len form) 3) - (tree-bind (nop . args) form - (let ((op (caseq nop (- '+) (/ '*))) - (a1 (car args))) - me.(comp-fun-form oreg env - ^(,nop ,(car args) (,op ,*(cdr args)))))) - me.(comp-fun-form oreg env form))) + (tree-case form + ((nop a1 a2 a3 . args) + (let ((op (caseq nop (- '+) (/ '*)))) + me.(comp-fun-form oreg env + ^(,nop ,a1 (,op ,a2 ,a3 ,*args))))) + (else me.(comp-fun-form oreg env form)))) (defmeth compiler comp-fun-form (me oreg env form) (let* ((olev *opt-level*) -- cgit v1.2.3