aboutsummaryrefslogtreecommitdiff
path: root/module/hnh/util/lens.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/hnh/util/lens.scm')
-rw-r--r--module/hnh/util/lens.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/module/hnh/util/lens.scm b/module/hnh/util/lens.scm
index 26c75be7..00f7fe1e 100644
--- a/module/hnh/util/lens.scm
+++ b/module/hnh/util/lens.scm
@@ -42,10 +42,6 @@
-(define (make-lens getter setter)
- (case-lambda ((datum) (getter datum))
- ((datum new-value) (setter datum new-value))))
-
(define-syntax build-lens
(syntax-rules ()
((_ (getter gargs ...)
@@ -97,8 +93,13 @@
(build-lens (list-ref idx) (list-change idx)))
-(define car* (make-lens car (lambda (pair value) (cons value (cdr pair)))))
-(define cdr* (make-lens cdr (lambda (pair value) (cons (car pair) value))))
+(define car*
+ (case-lambda ((pair) (car pair))
+ ((pair value) (cons value (cdr pair)))))
+
+(define cdr*
+ (case-lambda ((pair) (cdr pair))
+ ((pair value) (cons (car pair) value))))
(define (each obj lens proc)
(modify obj lens