{"size": 1180, "ext": "scrbl", "max_stars_repo_path": "lens-doc/lens/private/base/transform.scrbl", "max_stars_repo_name": "AlexKnauth/lens", "max_stars_repo_stars_event_min_datetime": "2015-07-08T12:56:46.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-17T21:21:54.000Z", "max_issues_repo_path": "lens-doc/lens/private/base/transform.scrbl", "max_issues_repo_name": "AlexKnauth/lens", "max_issues_repo_issues_event_min_datetime": "2015-07-07T01:47:59.000Z", "max_issues_repo_issues_event_max_datetime": "2019-09-10T18:35:17.000Z", "max_forks_repo_path": "lens-doc/lens/private/base/transform.scrbl", "max_forks_repo_name": "AlexKnauth/lens", "max_forks_repo_forks_event_min_datetime": "2015-07-07T05:01:29.000Z", "max_forks_repo_forks_event_max_datetime": "2019-07-16T00:37:04.000Z"}
{"max_stars_count": 66, "max_issues_count": 199, "max_forks_count": 11, "avg_line_length": 36.875, "max_line_length": 102, "alphanum_fraction": 0.6466101695}
#lang scribble/manual

@(require lens/private/doc-util/main)


@title{Transforming Values With Lenses}

@defproc[(lens-transform [lens lens?]
                         [target target/c]
                         [transformer (-> view/c view/c)])
         target/c]{
  Transforms the view of @racket[target] through the given @racket[lens]
  with the @racket[transformer] function. Equivalent to getting the
  view of @racket[target] through @racket[lens], passing that value
  to @racket[transformer], then setting the view of @racket[target]
  to the return value of calling @racket[transformer] with the old
  view.
  @lens-examples[
    (lens-transform first-lens '(1 2 3) number->string)
]}

@defproc[(lens-transform/list [target target/c] [lens lens?] [transformer (-> view/c view/c)] ... ...)
         target/c]{
  Like @racket[lens-transform], except that it can take multiple
  lenses-transformer pairs in the same way as @racket[lens-set*]
  and later transformations overwrite earlier ones in the same way.
  @lens-examples[
    (lens-transform/list '(1 2 3 4 5)
                         first-lens number->string
                         third-lens (λ (x) (* 100 x)))
]}
