rename to use ~> instead of ->

This commit is contained in:
AlexKnauth 2015-07-13 09:34:50 -04:00
parent be741863b6
commit b924142900
2 changed files with 21 additions and 21 deletions

View File

@ -1,8 +1,8 @@
#lang racket/base
(provide lens-view->
lens-set->
lens-transform->
(provide lens-view~>
lens-set~>
lens-transform~>
lens-view/thrush
lens-set/thrush
lens-transform/thrush
@ -12,19 +12,19 @@
(module+ test
(require rackunit racket/list fancy-app))
(define (lens-view-> target . lenses)
(define (lens-view~> target . lenses)
(for/fold ([target target]) ([lens (in-list lenses)])
(lens-view lens target)))
(define (lens-set-> target #:-> new-val . lenses)
(define (lens-set~> target #:-> new-val . lenses)
(lens-set (apply lens-thrush lenses) target new-val))
(define (lens-transform-> target #:-> transformer . lenses)
(define (lens-transform~> target #:-> transformer . lenses)
(lens-transform (apply lens-thrush lenses) target transformer))
(define lens-view/thrush lens-view->)
(define lens-set/thrush lens-set->)
(define lens-transform/thrush lens-transform->)
(define lens-view/thrush lens-view~>)
(define lens-set/thrush lens-set~>)
(define lens-transform/thrush lens-transform~>)
(module+ test
(define (set-first l v)
@ -33,10 +33,10 @@
(list* (first l) v (rest (rest l))))
(define first-lens (make-lens first set-first))
(define second-lens (make-lens second set-second))
(check-equal? (lens-view-> '((1 2) 3) first-lens second-lens)
(check-equal? (lens-view~> '((1 2) 3) first-lens second-lens)
2)
(check-equal? (lens-set-> '((1 2) 3) first-lens second-lens #:-> 'two)
(check-equal? (lens-set~> '((1 2) 3) first-lens second-lens #:-> 'two)
'((1 two) 3))
(check-equal? (lens-transform-> '((1 2) 3) first-lens second-lens #:-> (* 100 _))
(check-equal? (lens-transform~> '((1 2) 3) first-lens second-lens #:-> (* 100 _))
'((1 200) 3))
)

View File

@ -7,7 +7,7 @@
@defmodule[unstable/lens/arrow]
@deftogether[[@defproc[(lens-view/thrush [target any/c] [lens lens?] ...) any/c]
@defproc[(lens-view-> [target any/c] [lens lens?] ...) any/c]]]{
@defproc[(lens-view~> [target any/c] [lens lens?] ...) any/c]]]{
Like @racket[lens-view], except that it can take multiple lenses,
which are combined into a nested lens. The argument order is
switched, so that the @racket[target] comes first and the
@ -15,28 +15,28 @@ switched, so that the @racket[target] comes first and the
@racket[(lens-view/thrush target lens ...)] produces the same value as
@racket[(lens-view (lens-thrush lens ...) target)], but can be more
efficient.
The function @racket[lens-view->] is provided as a shorter version.
The function @racket[lens-view~>] is provided as a shorter version.
@lenses-examples[
(lens-view/thrush '(a b ((c d) e f) g) third-lens first-lens second-lens)
(lens-view-> '(a b ((c d) e f) g) third-lens first-lens second-lens)
(lens-view~> '(a b ((c d) e f) g) third-lens first-lens second-lens)
]}
@deftogether[[@defproc[(lens-set/thrush [target any/c] [lens lens?] ... [#:-> new-view any/c]) any/c]
@defproc[(lens-set-> [target any/c] [lens lens?] ... [#:-> new-view any/c]) any/c]]]{
@defproc[(lens-set~> [target any/c] [lens lens?] ... [#:-> new-view any/c]) any/c]]]{
Like @racket[lens-set], except that it can take multiple lenses,
which again are combined into a nested lens.
@racket[(lens-set/thrush target lens ... #:-> new-view)] is equivalent
to @racket[(lens-set (lens-thrush lens ...) target new-view)], and
@racket[lens-set->] is the shorter version.
@racket[lens-set~>] is the shorter version.
@lenses-examples[
(lens-set/thrush '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> "sea")
(lens-set-> '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> "sea")
(lens-set~> '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> "sea")
]}
@deftogether[[@defproc[(lens-transform/thrush [target any/c] [lens lens?] ...
[#:-> transformer (-> any/c any/c)])
any/c]
@defproc[(lens-transform-> [target any/c] [lens lens?] ...
@defproc[(lens-transform~> [target any/c] [lens lens?] ...
[#:-> transformer (-> any/c any/c)])
any/c]]]{
Like @racket[lens-transform], except that it can take multiple lenses,
@ -44,9 +44,9 @@ just like @racket[lens-set/thrush].
@racket[(lens-transform/thrush target lens ... #:-> transformer)] is
equivalent to
@racket[(lens-transform (lens-thrush lens ...) target transformer)],
and @racket[lens-transform->] is the shorter verison.
and @racket[lens-transform~>] is the shorter verison.
@lenses-examples[
(lens-transform/thrush '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> symbol->string)
(lens-transform-> '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> symbol->string)
(lens-transform~> '(a b ((c d) e f) g) third-lens first-lens second-lens #:-> symbol->string)
]}