aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ref/general.texi1
-rw-r--r--doc/ref/general/table.texi38
2 files changed, 39 insertions, 0 deletions
diff --git a/doc/ref/general.texi b/doc/ref/general.texi
index 0e14ee34..18b2bfc1 100644
--- a/doc/ref/general.texi
+++ b/doc/ref/general.texi
@@ -11,6 +11,7 @@ of these should be generally useful in any project.
@include general/uuid.texi
@include general/io.texi
@include general/bst.texi
+@include general/table.texi
@include general/util-path.texi
@include general/util-config.texi
@include general/util-exceptions.texi
diff --git a/doc/ref/general/table.texi b/doc/ref/general/table.texi
new file mode 100644
index 00000000..69bb839f
--- /dev/null
+++ b/doc/ref/general/table.texi
@@ -0,0 +1,38 @@
+@node Table
+@section Table
+
+An immutable table, where all operations on the table return a new
+table with the wanted changes carried out. All keys @emph{must} be
+symbols.
+
+@defun table
+Constructs a new empty table.
+@end defun
+
+@defun table? x
+Is @var{x} a table?
+@end defun
+
+@defun table-get table key [default=#f]
+Retrive value form table, returns @var{default} if key isn't in the
+table.
+@end defun
+
+@defun table-put table key value
+Insert new value into table, overwriting anything previously stored
+under that key. Returns a new table with the values set.
+@end defun
+
+@defun table-remove table key
+Returns a new table with @var{key} removed.
+@end defun
+
+@defun table->list table
+Return an association list with the same content as the table.
+
+The keys will be sorted.
+@end defun
+
+@defun alist->table alist
+Construct a new table from the given alist.
+@end defun