Adjust lens-transform to play nicely with currying

This commit is contained in:
Jack Firth 2015-02-25 13:02:17 -08:00
parent 6e26e1703a
commit 2c518f970c
2 changed files with 5 additions and 5 deletions

View File

@ -55,12 +55,12 @@
;; Composing a lens with a function to make a value-sensitive setter
(define (lens-transform lens v f)
(define (lens-transform lens f v)
(let-lens (view setter) (lens v)
(setter (f view))))
(module+ test
(check-equal? (lens-transform second-lens '(1 2 3) number->string) '(1 "2" 3)))
(check-equal? (lens-transform second-lens number->string '(1 2 3)) '(1 "2" 3)))
;; Lens composition

View File

@ -77,8 +77,8 @@ source code: @url["https://github.com/jackfirth/lenses"]
]}
@defproc[(lens-transform [lens (lens/c target/c view/c)]
[target target/c]
[transformer (-> view/c view/c)])
[transformer (-> view/c view/c)]
[target target/c])
target/c]{
Transforms the view of @racket[target] through the given @racket[lens]
with the @racket[transformer] function. Equivalent to getting the
@ -87,7 +87,7 @@ source code: @url["https://github.com/jackfirth/lenses"]
to the return value of calling @racket[transformer] with the old
view.
@lenses-examples[
(lens-transform first-lens '(1 2 3) number->string)
(lens-transform first-lens number->string '(1 2 3))
]}
@defproc[(lens-compose [lens proc] ...+) proc?]{