vector-for-each(3scm)

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

πŸ’… vector-for-each(3scm) πŸ’…

okay bestie, welcome to the Scheme Programmer's Manual β€” this is the page for vector-for-each, and it's giving β€œtiny loop, big side-effect energy” ✨

🌸 NAME 🌸

vector-for-each β€” loop over the elements of a vector πŸ’–

πŸ“š LIBRARY πŸ“š

fr fr, import it from one of these:

(import (rnrs))                     ;R6RS
(import (rnrs base))                ;R6RS
(import (scheme base))              ;R7RS

✨ SYNOPSIS ✨

(vector-for-each proc vector1 vector2 ...)

πŸ¦‹ DESCRIPTION πŸ¦‹

So the vibe is: it applies proc element-wise to the elements of the vectors, for its side effects, in order from the first elements to the last. πŸ’«

R6RS β€” proc is always called in the same dynamic environment as vector-for-each itself. Also, the implementation must check the restrictions on proc to the extent performed by applying it as described. An implementation may check whether proc is an appropriate argument before applying it.

R7RS β€” if more than one vector is given and not all vectors have the same length, vector-for-each terminates when the shortest vector runs out. βœ‚οΈ

πŸŽ€ RETURN VALUES πŸŽ€

R6RS β€” returns unspecified values.

R7RS β€” returns an unspecified value.

🌈 EXAMPLES 🌈

(vector-for-each
  display
  '#("Hello, " "world" ".0))
; prints: Hello, world.

πŸ’­ RATIONALE πŸ’­

R7RS says that this procedure and a few others were added in order to round out the sequence operations. iconic behavior, honestly πŸ‘‘

🫢 COMPATIBILITY 🫢

The R7RS variant of this procedure terminates early if the vectors are not the same length, but the R6RS variant requires that all the vectors are the same length. Additionally R7RS makes it an error to mutate any of the vectors.

πŸ’€ ERRORS πŸ’€

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. In particular, the vectors should all have the same length and proc should accept as many arguments as there are vectors.
  • R7RS β€” the assertions described above (except for the length requirement) are errors. Implementations may signal an error, extend the procedure's domain of definition to include such arguments, or fail catastrophically. It is an error for proc to mutate any of the vectors.
bestie, β€œfail catastrophically” is right there in the manual β€” do not test that vibe on purpose 😭

πŸ‘€ SEE ALSO πŸ‘€

⭐ STANDARDS ⭐

R6RS, R7RS

πŸ•°οΈ HISTORY πŸ•°οΈ

This procedure first appeared in R6RS. It was later also added to R7RS.

πŸ’œ 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/.


πŸ’– okay that's the whole page, bestie β€” vector-for-each(3scm) from the Scheme Programmer's Manual, dated 2023-01-23. stay slay, happy looping! 🫢✨

πŸ“¦ where this page comes from