From 882a3921b8698959ab74dfc8b9bd380a5a9a8795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 5 Sep 2023 00:56:32 +0200 Subject: Add basic documentation for lens. --- doc/ref/guile.texi | 1 + doc/ref/guile/lens.texi | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 doc/ref/guile/lens.texi diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi index 78fe2293..cb3d8475 100644 --- a/doc/ref/guile.texi +++ b/doc/ref/guile.texi @@ -11,6 +11,7 @@ @include guile/util-config.texi @include guile/util-type.texi @include guile/util-object.texi +@include guile/lens.texi @include guile/base64.texi @include guile/web.texi @include guile/vcomponent.texi diff --git a/doc/ref/guile/lens.texi b/doc/ref/guile/lens.texi new file mode 100644 index 00000000..eeddd6ca --- /dev/null +++ b/doc/ref/guile/lens.texi @@ -0,0 +1,47 @@ +@node Lenses +@section Lenses + +Provided by the module @code{(hnh util lens)} + +@defun modify object lens f args ... +@end defun + +@defmac modify* object lens +@defmacx modify* object lens rest ... +@end defmac + +@defmac set object lenses ... value +@end defmac + +@defmac get object lenses ... +@end defmac + + +@defun make-lens getter setter +@end defun + +@defmac build-lens getter setter +Where any of getter or setter can either be a single symbol, or a list. +@end defmac + +@deftp {Scheme Lens} identity-lens +@end deftp + +@defun compose-lenses lenses ... +@defunx lens-compose lenses ... +Lenses composes left to right, so earlier lenses in @var{lenses} are +applied earlier. +@end defun + +@deftp {Scheme Lens} ref idx +Focuses the element at index @var{idx} in a list. +@end deftp + +@deftp {Scheme Lens} car* +@deftp {Scheme Lens} cdr* +Focuses the first or second element of a pair. +@end deftp + +@defun each object lens proc +@end defun + -- cgit v1.2.3