{"size": 632, "ext": "scrbl", "max_stars_repo_path": "lens-doc/lens/private/hash/join-hash.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/hash/join-hash.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/hash/join-hash.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": 33.2631578947, "max_line_length": 74, "alphanum_fraction": 0.664556962}
#lang scribble/manual

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


@defproc[(lens-join/hash [key any/c] [lens lens?] ... ...) lens?]{
  Constructs a lens that combines the view of each
  @racket[lens] into a hash of views with @racket[key]s
  as the hash keys. In the same manner as @racket[lens-join/list],
  if lenses share views later lenses take precedence when
  setting.
  @lens-examples[
    (define first-third-hash-lens
      (lens-join/hash 'first first-lens
                      'third third-lens))
    (lens-view first-third-hash-lens '(1 2 3))
    (lens-set first-third-hash-lens '(1 2 3) (hash 'first 100 'third 200))
]}
