Mapping, Folding, and Unfolding
Scheme Procedure: string-map proc s [start [end]]
C Function: scm_string_map (proc, s, start, end)
proc is a char->char procedure, it is mapped over s. The order in which the procedure is applied to the string elements is not specified.
Scheme Procedure: string-map! proc s [start [end]]
C Function: scm_string_map_x (proc, s, start, end)
proc is a char->char procedure, it is mapped over s. The order in which the procedure is applied to the string elements is not specified. The string s is modified in-place, the return value is not specified.
Scheme Procedure: string-for-each proc s [start [end]]
C Function: scm_string_for_each (proc, s, start, end)
proc is mapped over s in left-to-right order. The return value is not specified.
Scheme Procedure: string-for-each-index proc s [start [end]]
C Function: scm_string_for_each_index (proc, s, start, end)
Call (proc i) for each index i in s, from left to right.
For example, to change characters to alternately upper and lower case,
(define str (string-copy "studly"))
(string-for-each-index
(lambda (i)
(string-set! str i
((if (even? i) char-upcase char-downcase)
(string-ref str i))))
str)
str ⇒ "StUdLy"Scheme Procedure: string-fold kons knil s [start [end]]
C Function: scm_string_fold (kons, knil, s, start, end)
Fold kons over the characters of s, with knil as the terminating element, from left to right. kons must expect two arguments: The actual character and the last result of kons’ application.
Scheme Procedure: string-fold-right kons knil s [start [end]]
C Function: scm_string_fold_right (kons, knil, s, start, end)
Fold kons over the characters of s, with knil as the terminating element, from right to left. kons must expect two arguments: The actual character and the last result of kons’ application.
Scheme Procedure: string-unfold p f g seed [base [make_final]]
C Function: scm_string_unfold (p, f, g, seed, base, make_final)
gis used to generate a series of seed values from the initialseed:seed, (gseed), (g^2seed), (g^3seed), …ptells us when to stop – when it returns true when applied to one of these seed values.fmaps each seed value to the corresponding character in the result string. These chars are assembled into the string in a left-to-right order.baseis the optional initial/leftmost portion of the constructed string; it default to the empty string.make_finalis applied to the terminal seed value (on whichpreturns true) to produce the final/rightmost portion of the constructed string. The default is nothing extra.
Scheme Procedure: string-unfold-right p f g seed [base [make_final]]
C Function: scm_string_unfold_right (p, f, g, seed, base, make_final)
gis used to generate a series of seed values from the initialseed:seed, (gseed), (g^2seed), (g^3seed), …ptells us when to stop – when it returns true when applied to one of these seed values.fmaps each seed value to the corresponding character in the result string. These chars are assembled into the string in a right-to-left order.baseis the optional initial/rightmost portion of the constructed string; it default to the empty string.make_finalis applied to the terminal seed value (on whichpreturns true) to produce the final/leftmost portion of the constructed string. It defaults to(lambda (x) ).