string-copy!(3scm)

πŸ“¦ version 0-unstable-2024-02, in nixpkgs unstable

πŸ’– string-copy!(3scm) β€” straight from the Scheme Programmer's Manual πŸ’–

okay bestie, gather round the group chat: this is the manual page for string-copy!, and yes the exclamation mark is part of her name. main character energy, no cap.


🏷️ NAME

string-copy! β€” copy from a string into another string. It's giving "move those characters, but make it Scheme."

πŸ“š LIBRARY

She lives in (scheme base) and she is R7RS, periodt:

(import (scheme base))              ;R7RS

✨ SYNOPSIS

Three forms, all iconic:

(string-copy! to at from)
(string-copy! to at from start)
(string-copy! to at from start end)

πŸ’… DESCRIPTION

okay so string-copy! copies the characters of the string from between start and end into the string to, starting at at. literally that's the whole vibe.

Now the important caveat, bestie: the order in which characters are copied is unspecified, except that if the source and destination overlap, copying takes place as if the source is first copied into a temporary string and then into the destination. This can be achieved without allocating storage by making sure to copy in the correct direction in such circumstances. 🫢

🎁 RETURN VALUES

Returns an unspecified value. so don't expect a little souvenir, okay? she's not giving you a return value. 😭

πŸ§ͺ EXAMPLES

Here's the whole little demo, keep it exact:

(define a "12345")
(define b (string-copy "abcde"))
(string-copy! b 1 a 0 2)
b  =>  "a12de"

and just like that, b says "a12de". slay. πŸ’…

πŸ¦‹ COMPATIBILITY

This procedure is unique to R7RS. no cap, she's an R7RS-only girlie.

πŸ’€ ERRORS

It is an error if at is less than zero or greater than the length of to.

It is also an error if (- (string-length to) at) is less than (- end start).

It is also an error if the wrong number of arguments was passed or an argument was outside its domain.

⚠️ and listen: implementations may signal an error, extend the procedure's domain of definition to include such arguments, or fail catastrophically. not me saying fail catastrophically, that's just the manual. πŸ’€

πŸ‘€ SEE ALSO

string-set!(3scm) β€” go give her a look too, bestie.

πŸ“œ STANDARDS

R7RS. that's the standard, periodt.

πŸ•°οΈ HISTORY

This procedure first appeared in R7RS. In R2RS there were the procedures substring-move-right! and substring-move-left! that had the same effect. history lesson but make it cute. πŸŽ€

πŸ‘‘ AUTHORS

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


πŸ’… that's the whole page, bestie. this string-copy!(3scm) situation comes from the Scheme Programmer's Manual and the scheme-manpages project, and the footer date is 2022-05-14. mwah 🫢

πŸ“¦ where this page comes from