GNU Info

Info Node: (guile.info)Read Only Strings

(guile.info)Read Only Strings


Prev: Shared Substrings Up: Strings
Enter node , (file) or (file)node

Read Only Strings
-----------------

Type-checking in Guile primitives distinguishes between mutable strings
and read only strings.  Mutable strings answer `#t' to `string?'  while
read only strings may or may not.   All kinds of strings, whether or
not they are mutable return #t to this:

 - primitive: read-only-string? x
     Return true if OBJ can be read as a string,

     This illustrates the difference between `string?' and
     `read-only-string?':

          (string? "a string") => #t
          (string? 'a-symbol) => #f
          
          (read-only-string? "a string") => #t
          (read-only-string? 'a-symbol) => #t

"Read-only" refers to how the string will be used, not how the string is
permitted to be used.  In particular, all strings are "read-only
strings" even if they are mutable, because a function that only reads
from a string can certainly operate on even a mutable string.

Symbols are an example of read-only strings.  Many string functions,
such as `string-append' are happy to operate on symbols.  Many
functions that expect a string argument, such as `open-file', will
accept a symbol as well.

Shared substrings, discussed in the previous chapter, also happen to be
read-only strings.


automatically generated by info2www version 1.2.2.9