From d13145e6eaced25e6f4e0ad61156eaf3fd2bc1e0 Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Sun, 30 Aug 2015 17:27:46 -0400 Subject: [PATCH] provide and document lens-join/assoc --- unstable/lens/join-assoc.scrbl | 18 ++++++++++++++++++ unstable/lens/main.rkt | 1 + unstable/lens/main.scrbl | 1 + 3 files changed, 20 insertions(+) create mode 100644 unstable/lens/join-assoc.scrbl diff --git a/unstable/lens/join-assoc.scrbl b/unstable/lens/join-assoc.scrbl new file mode 100644 index 0000000..3b69d1e --- /dev/null +++ b/unstable/lens/join-assoc.scrbl @@ -0,0 +1,18 @@ +#lang scribble/manual + +@(require lens/private/doc-util/main) + +@title{Joining lenses with an association list} + +@defmodule[unstable/lens/join-assoc] + +@defproc[(lens-join/assoc [key key/c] [lens (lens/c target/c value/c)] ... ...) + (lens/c target/c (listof (cons/c key/c value/c)))]{ +Like @racket[lens-join/hash], except joins the keys and values into an +association list instead of a hash-table. +@lens-unstable-examples[ + (define a-b-lens (lens-join/assoc 'a first-lens + 'b third-lens)) + (lens-view a-b-lens '(1 2 3)) + (lens-set a-b-lens '(1 2 3) '((a . 100) (b . 200))) +]} diff --git a/unstable/lens/main.rkt b/unstable/lens/main.rkt index faa51dd..4393467 100644 --- a/unstable/lens/main.rkt +++ b/unstable/lens/main.rkt @@ -3,6 +3,7 @@ "dict-nested.rkt" "if.rkt" "isomorphism.rkt" +"join-assoc.rkt" "mapper.rkt" "match.rkt" "set-filterer.rkt" diff --git a/unstable/lens/main.scrbl b/unstable/lens/main.scrbl index dd30ab7..10d51a5 100644 --- a/unstable/lens/main.scrbl +++ b/unstable/lens/main.scrbl @@ -16,6 +16,7 @@ this library being backwards-compatible. "dict-nested.scrbl" "if.scrbl" "isomorphism.scrbl" + "join-assoc.scrbl" "mapper.scrbl" "match.scrbl" "set-filterer.scrbl"