diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-05 00:56:32 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-05 00:59:22 +0200 |
commit | 882a3921b8698959ab74dfc8b9bd380a5a9a8795 (patch) | |
tree | 536d79eded541264097f84008c3031dc9b87f6b0 | |
parent | Major work on, something. (diff) | |
download | calp-882a3921b8698959ab74dfc8b9bd380a5a9a8795.tar.gz calp-882a3921b8698959ab74dfc8b9bd380a5a9a8795.tar.xz |
Add basic documentation for lens.
-rw-r--r-- | doc/ref/guile.texi | 1 | ||||
-rw-r--r-- | doc/ref/guile/lens.texi | 47 |
2 files changed, 48 insertions, 0 deletions
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 + |