aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-09-05 00:56:32 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-09-05 00:59:22 +0200
commit882a3921b8698959ab74dfc8b9bd380a5a9a8795 (patch)
tree536d79eded541264097f84008c3031dc9b87f6b0
parentMajor work on, something. (diff)
downloadcalp-882a3921b8698959ab74dfc8b9bd380a5a9a8795.tar.gz
calp-882a3921b8698959ab74dfc8b9bd380a5a9a8795.tar.xz
Add basic documentation for lens.
-rw-r--r--doc/ref/guile.texi1
-rw-r--r--doc/ref/guile/lens.texi47
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
+