Next: , Previous: String Syntax, Up: Strings


5.5.5.2 String Predicates

The following procedures can be used to check whether a given string fulfills some specified property.

— Scheme Procedure: string? obj
— C Function: scm_string_p (obj)

Return #t if obj is a string, else #f.

— C Function: int scm_is_string (SCM obj)

Returns 1 if obj is a string, 0 otherwise.

— Scheme Procedure: string-null? str
— C Function: scm_string_null_p (str)

Return #t if str's length is zero, and #f otherwise.

          (string-null? "")  => #t
          y                    => "foo"
          (string-null? y)     => #f
     
— Scheme Procedure: string-any char_pred s [start [end]]
— C Function: scm_string_any (char_pred, s, start, end)

Check if char_pred is true for any character in string s.

char_pred can be a character to check for any equal to that, or a character set (see Character Sets) to check for any in that set, or a predicate procedure to call.

For a procedure, calls (char_pred c) are made successively on the characters from start to end. If char_pred returns true (ie. non-#f), string-any stops and that return value is the return from string-any. The call on the last character (ie. at end-1), if that point is reached, is a tail call.

If there are no characters in s (ie. start equals end) then the return is #f.

— Scheme Procedure: string-every char_pred s [start [end]]
— C Function: scm_string_every (char_pred, s, start, end)

Check if char_pred is true for every character in string s.

char_pred can be a character to check for every character equal to that, or a character set (see Character Sets) to check for every character being in that set, or a predicate procedure to call.

For a procedure, calls (char_pred c) are made successively on the characters from start to end. If char_pred returns #f, string-every stops and returns #f. The call on the last character (ie. at end-1), if that point is reached, is a tail call and the return from that call is the return from string-every.

If there are no characters in s (ie. start equals end) then the return is #t.