aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2024-08-30 01:13:59 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2024-08-30 01:13:59 +0900
commit9238bb80e0f4518704b160fe16a04265edc80be4 (patch)
tree98dd52af1dcaa68cdf9910b6eede31e6be96d57c
parentcb425e6fc0f08c0d0f55897faf867f5f92fccd05 (diff)
Use car+cdr procedure
-rw-r--r--qklib/infix.scm8
1 files changed, 3 insertions, 5 deletions
diff --git a/qklib/infix.scm b/qklib/infix.scm
index cdeb8e5..4715a3a 100644
--- a/qklib/infix.scm
+++ b/qklib/infix.scm
@@ -24,7 +24,7 @@
current-operator-mapping)
(import (scheme base)
(scheme case-lambda)
- (only (srfi 1) fold break! reverse!)
+ (only (srfi 1) car+cdr fold break! reverse!)
(only (srfi 26) cut)
(only (srfi 128) make-default-comparator)
(only (srfi 146) mapping-unfold mapping-adjoin mapping-ref/default))
@@ -88,12 +88,10 @@
(if (operator-left? op)
(let ((rev-expr (reverse! expr)))
(let-values (((rev-lst op+rev-rest) (break! (cut operator=? op <>) rev-expr)))
- (let ((op (car op+rev-rest))
- (rev-rest (cdr op+rev-rest)))
+ (let-values (((op rev-rest) (car+cdr op+rev-rest)))
(list (operator-symbol op) (->prefix (reverse! rev-rest)) (->prefix (reverse! rev-lst))))))
(let-values (((lst op+rest) (break! (cut operator=? op <>) expr)))
- (let ((op (car op+rest))
- (rest (cdr op+rest)))
+ (let-values (((op rest) (car+cdr op+rest)))
(list (operator-symbol op) (->prefix lst) (->prefix rest))))))
((single? expr) (car expr))
(else expr))))