string-copy(3scm) Scheme Programmer's Manual string-copy(3scm)

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.

substring(3scm), string-copy!(3scm)

R4RS, R5RS, R6RS, R7RS

The string-copy procedure first appeared in R2RS.

This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://weinholt.se/scheme/manpages/.

2022-04-05