Mercurial > hg > xemacs-beta
diff man/lispref/range-tables.texi @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 576fb035e263 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/lispref/range-tables.texi Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,72 @@ +@c -*-texinfo-*- +@c This is part of the XEmacs Lisp Reference Manual. +@c Copyright (C) 1996 Ben Wing. +@c See the file lispref.texi for copying conditions. +@setfilename ../../info/range-tables.info +@node Range Tables, Databases, Hash Tables, top +@chapter Range Tables +@cindex Range Tables + +A range table is a table that efficiently associated values with +ranges of integers. + +Note that range tables have a read syntax, like this: + +@example +#s(range-table data ((-3 2) foo (5 20) bar)) +@end example + +This maps integers in the range (-3, 2) to @code{foo} and integers +in the range (5, 20) to @code{bar}. + +@defun range-table-p object +Return non-@code{nil} if @var{object} is a range table. +@end defun + +@menu +* Introduction to Range Tables:: Range tables efficiently map ranges of + integers to values. +* Working With Range Tables:: Range table functions. +@end menu + +@node Introduction to Range Tables +@section Introduction to Range Tables + +@defun make-range-table +Make a new, empty range table. +@end defun + +@defun copy-range-table old-table +Make a new range table which contains the same values for the same +ranges as the given table. The values will not themselves be copied. +@end defun + +@node Working With Range Tables +@section Working With Range Tables + +@defun get-range-table pos table &optional default +This function finds value for position @var{pos} in @var{table}. If +there is no corresponding value, return @var{default} (defaults to +@code{nil}). +@end defun + +@defun put-range-table start end val table +This function sets the value for range (@var{start}, @var{end}) to be +@var{val} in @var{table}. +@end defun + +@defun remove-range-table start end table +This function removes the value for range (@var{start}, @var{end}) in +@var{table}. +@end defun + +@defun clear-range-table table +This function flushes @var{table}. +@end defun + +@defun map-range-table function table +This function maps @var{function} over entries in @var{table}, calling +it with three args, the beginning and end of the range and the +corresponding value. +@end defun +