string-copy - copy a string
(import (rnrs)) ;R6RS
(import (rnrs base)) ;R6RS
(import (scheme r5rs)) ;R7RS
(import (scheme base)) ;R7RS
(string-copy string)
(string-copy string start) ;R7RS
(string-copy string start end) ;R7RS
Returns a newly allocated copy of the part of the given string between
start and end.
Some implementations have a single empty string object which is returned if
start = end, see make-string(3scm).
Returns a single value which is a string.
(string-copy "foo")
=> "foo"
;; R7RS
(string-copy "Hello" 1)
=> "ello"
This procedure makes sense in the presence of mutating string procedures like
string-set!(3scm). It is commonly used to create copies of strings
where there is an original copy of a string that should not be mutated by the
receiver of the copy.
This procedure is missing in IEEE Scheme.
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
- The wrong number of arguments was passed or an argument was outside its
domain.
- R7RS
- The assertions described above are errors. Implementations may signal an
error, extend the procedure's domain of definition to include such
arguments, or fail catastrophically.
The string-copy procedure first appeared in R2RS.