From 68a4c2d76aa2c3b9060735fa3fdf9fbd6bb045f3 Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Fri, 17 Jul 2015 16:09:32 -0400 Subject: [PATCH] make lens-join/vector use immutable vectors --- unstable/lens/join.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/unstable/lens/join.rkt b/unstable/lens/join.rkt index 3420773..ae51267 100644 --- a/unstable/lens/join.rkt +++ b/unstable/lens/join.rkt @@ -84,8 +84,11 @@ (λ (tgt) (f tgt)) (λ (tgt v) (f-inv v)))) +(define (list->immutable-vector lst) + (apply vector-immutable lst)) + (define list->vector-lens - (inverse-function-lens list->vector vector->list)) + (inverse-function-lens list->immutable-vector vector->list)) (module+ test (define vector-first-third-fifth-lens @@ -94,6 +97,7 @@ fifth-lens)) (check-equal? (lens-view vector-first-third-fifth-lens '(a b c d e f)) #(a c e)) + (check-pred immutable? (lens-view vector-first-third-fifth-lens '(a b c d e f))) (check-equal? (lens-set vector-first-third-fifth-lens '(a b c d e f) #(1 2 3)) '(1 b 2 d 3 f)))