diff options
author | Masaya Tojo <masaya@tojo.tokyo> | 2024-08-30 01:13:59 +0900 |
---|---|---|
committer | Masaya Tojo <masaya@tojo.tokyo> | 2024-08-30 01:13:59 +0900 |
commit | 9238bb80e0f4518704b160fe16a04265edc80be4 (patch) | |
tree | 98dd52af1dcaa68cdf9910b6eede31e6be96d57c /qklib/infix.scm | |
parent | cb425e6fc0f08c0d0f55897faf867f5f92fccd05 (diff) |
Use car+cdr procedure
Diffstat (limited to 'qklib/infix.scm')
-rw-r--r-- | qklib/infix.scm | 8 |
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)))) |