From 441d790844ce7d6dae466ebab1e24262dc50e98d Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Sun, 16 Aug 2015 17:21:09 -0500 Subject: [PATCH] provide and document mapper-lens --- unstable/lens/main.rkt | 2 ++ unstable/lens/main.scrbl | 1 + unstable/lens/mapper.scrbl | 15 +++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 unstable/lens/mapper.scrbl diff --git a/unstable/lens/main.rkt b/unstable/lens/main.rkt index c02a2bc..e79e14f 100644 --- a/unstable/lens/main.rkt +++ b/unstable/lens/main.rkt @@ -5,6 +5,7 @@ "sublist.rkt" "arrow.rkt" "isomorphism.rkt" + "mapper.rkt" ) (provide (all-from-out "syntax.rkt" @@ -12,4 +13,5 @@ "sublist.rkt" "arrow.rkt" "isomorphism.rkt" + "mapper.rkt" )) diff --git a/unstable/lens/main.scrbl b/unstable/lens/main.scrbl index 26e8f30..bf07f06 100644 --- a/unstable/lens/main.scrbl +++ b/unstable/lens/main.scrbl @@ -14,3 +14,4 @@ this library being backwards-compatible. @include-section["sublist.scrbl"] @include-section["arrow.scrbl"] @include-section["isomorphism.scrbl"] +@include-section["mapper.scrbl"] diff --git a/unstable/lens/mapper.scrbl b/unstable/lens/mapper.scrbl new file mode 100644 index 0000000..797c2df --- /dev/null +++ b/unstable/lens/mapper.scrbl @@ -0,0 +1,15 @@ +#lang scribble/manual + +@(require lens/doc-util/main) + +@title{Lenses that map over lists} + +@defmodule[unstable/lens/mapper] + +@defproc[(mapper-lens [lens lens?]) lens?]{ +Creates a lens that maps @racket[lens] over a target list. +@lenses-unstable-examples[ + (lens-view (mapper-lens first-lens) '((a b) (c d) (e f))) + (lens-set (mapper-lens first-lens) '((a b) (c d) (e f)) '(1 2 3)) + (lens-transform (mapper-lens first-lens) '((a b) (c d) (e f)) (λ (xs) (map symbol->string xs))) +]}