SRFI 118: Simple adjustable-size strings は新たな手続きとして string-append!
と string-replace!
という2つを提案しています。これだけ見ると特に驚きはないようですが、実際は Specification 節冒頭で
The standard Scheme functions make-string and string-copy are specified to return variable-size mutable strings by default.
というところで標準の手続きに対して大きな要求をしています。
R5RS では string は原則(string-set!
や string-fill!
による制限付きの操作を除き)immutable であり、当然 string オブジェクトが作成された時点で長さは固定されていました。R6RS でもそれは同じで、mutable strings ライブラリ((rnrs mutable-strings (6))
)でも固定長であることは維持されていました。R7RS-small も R5RS を踏襲しています。
つまりこの SRFI は string を mutable どころか可変長にできるようにしようという大胆なものといえます。