2002-03-03 07:06:35 -05:00
|
|
|
\section{Manipulating strings}\label{sec:stringhax}
|
2002-02-12 06:50:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
\item[Used files:] stringhax.scm
|
|
|
|
\item[Name of the package:] strings
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
2002-03-29 11:43:11 -05:00
|
|
|
\subsection{Overview}
|
2002-02-12 06:50:54 -05:00
|
|
|
|
|
|
|
This module provides several procedures to manipulate strings.
|
|
|
|
|
|
|
|
\begin{defundesc}{string-map} {procedure string} {string}
|
|
|
|
Does a map on each character of \semvar{string} and returns the
|
|
|
|
result, a newly allocated string. \semvar{procedure} takes a
|
|
|
|
character and should return a character.
|
|
|
|
\end{defundesc}
|
|
|
|
|
|
|
|
\defun{downcase-string} {string} {string}
|
|
|
|
\begin{defundescx}{upcase-string} {string} {string}
|
|
|
|
Do what you expect: convert \semvar{string} to downcase or upcase
|
|
|
|
using char-downcase or char-upcase, respectively. The result is a
|
|
|
|
newly allocated string.
|
|
|
|
\end{defundescx}
|
|
|
|
|
|
|
|
\defun{char-set-index} {string char-set \ovar{start}} {number}
|
|
|
|
\begin{defundescx}{char-set-rindex} {string char-set \ovar{start}} {number}
|
|
|
|
Returns the index of the first character that is in
|
|
|
|
\semvar{char\=set}. \ex{char\=set\=index} searches from left to
|
|
|
|
right, \ex{char\=set\=rindex} from right to left. \semvar{start} is
|
|
|
|
the index from where to start from and defaults to 0 in
|
|
|
|
\ex{char\=set\=index} and \ex{(string-length \semvar{string})} in
|
|
|
|
\ex{char\=set\=rindex}. If the search fails, \sharpf{} is returned.
|
|
|
|
\end{defundescx}
|
|
|
|
|
|
|
|
\begin{defundesc}{string-reduce} {default construct string} {string}
|
|
|
|
Does a ``fold-right'' on \semvar{string}. It applies
|
|
|
|
\semvar{construct} on every character of \semvar{string}.
|
|
|
|
\semvar{construct} is initially invoked with the last character of
|
|
|
|
string and \semvar{default}. In subsequent invocations, the last
|
|
|
|
argument is the return value from the previous invocation of
|
|
|
|
\semvar{construct} while the first argument is the character of
|
|
|
|
\semvar{string} leading the previous used character. So, the string
|
|
|
|
is traversed from right to left. The result of the application of
|
|
|
|
\semvar{string-reduce} is the result of the last application of
|
|
|
|
\semvar{construct}.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
\begin{code}
|
|
|
|
(string-reduce
|
|
|
|
""
|
|
|
|
(lambda (char str)
|
|
|
|
(string-append str (string (char-downcase char))))
|
|
|
|
"DOWNCASE")\end{code}
|
|
|
|
|
|
|
|
results to ``downcase''.
|
|
|
|
\end{defundesc}
|
|
|
|
|
|
|
|
\defun{string-prefix?} {prefix string} {boolean}
|
|
|
|
\begin{defundescx}{string-suffix?} {suffix string} {boolean}
|
|
|
|
Return \sharpt{} if \semvar{prefix}/\semvar{suffix} is a real
|
|
|
|
\semvar{prefix}/\semvar{suffix} of \semvar{string}, otherwise return
|
|
|
|
\sharpf. Real prefix/suffix means that \semvar{string} may not be a
|
|
|
|
prefix/suffix of \semvar{prefix}/\semvar{suffix} (in other words:
|
|
|
|
\semvar{prefix} and \semvar{suffix} have to be real shorter than
|
|
|
|
\semvar{string} to be a real prefix or suffix.
|
|
|
|
\end{defundescx}
|
|
|
|
|
|
|
|
\begin{defundesc}{skip-whitespace} {string} {number}
|
|
|
|
Returns the index of the first character in \semvar{string} that is
|
|
|
|
not a whitespace (as defined in \ex{char-set:whitespace}). If there
|
|
|
|
isn't such a character, \sharpf{} is returned.
|
|
|
|
\end{defundesc}
|
|
|
|
|
|
|
|
\begin{defundesc}{trim-spaces} {string} {string}
|
|
|
|
Returns a newly allocated string being \semvar{string} without
|
|
|
|
leading or trailing spaces (not whitespaces!).
|
|
|
|
\end{defundesc}
|