R6RS:翻訳:R6RS:11.12 Strings

R6RS:翻訳:R6RS:11.12 Strings

11.12 文字列

文字列は文字の並びである。

文字列の長さはその格納している文字の個数である。この数値は文字列が作成されたときは固定される。ある文字列に対して有効な添え字はその文字列の長さ未満の整数である。文字列の最初の文字の添え字は 0 であり、 2 番目は 1 であり、以下同様である。

[procedure] (string? obj)

obj が文字列であれば #t を返し、そうでなければ #f を返す。

[procedure] (make-string k)

[procedure] (make-string k char)

長さ k の文字列を新たに割り当てて返す。 char が与えられていた場合、文字列の要素はすべて char に初期化され、そうでない場合は文字列の内容は未規定である。

[procedure] (string char ...)

引き数群からなる文字列を新たに割り当てて返す。

[procedure] (string-length string)

与えられた string 中の文字の個数を正確な整数オブジェクトとして返す。

[procedure] (string-ref string k)

kstring の有効な添え字でなければならない。 string-ref 手続きは 0 を起点に数えた場合の stringk 番目の文字列を返す。

: 実装者は string-ref が定数時間で実行できるようにすべきである。

[procedure] (string=? string1 string2 string3 ...)

文字列群が同一の長さで、同一の位置に同一の文字を格納している場合に #t を返す。そうでない場合には string=? 手続きは #f を返す。

(string=? "Straße" "Strasse") 
                ⇒ #f

[procedure] (string<? string1 string2 string3 ...)

[procedure] (string>? string1 string2 string3 ...)

[procedure] (string<=? string1 string2 string3 ...)

[procedure] (string>=? string1 string2 string3 ...)

これらの手続きは文字上の対応する順序を文字列に辞書式に拡張したものである。例えば、 string<? は char<? の順序から導かれる文字列群の辞書式順序である。ふたつの文字列の長さが異なり、短い文字列の長さまでの要素が同一である場合、短い方の文字列が長い方の文字列よりも辞書式順で前にあるものと考えられる。

(string<? "z" "ß")         ⇒ #t
(string<? "z" "zz")         ⇒ #t
(string<? "z" "Z")         ⇒ #f

[procedure] (substring string start end)

string は文字列であり、 startend は 0 ≤ startend ≤ (string-length string) を満たす正確な整数オブジェクトでなければならない。

substring 手続きは string の 添え字 start (この文字を含む)から始まり、 end (この文字を含まない)で終わる文字から構成される文字列を新たに割り当てて返す。

[procedure] (string-append string ...)

与えられた文字列群の文字を連結した文字列を新たに割り当てて返す。

[procedure] (string->list string)

[procedure] (list->string list)

list は文字のリストでなければならない。 string->list 手続きは与えられた文字列を構成する文字のリストを新たに割り当てて返す。 list->string 手続きは list 中の文字から成る文字列を新たに割り当てて返す。 string-list 手続きと list->string 手続きは equal? について考えれば逆関数である。

(string-for-each proc string1 string2 ...)

文字列群はすべて同じ長さでなければならない。 proc は文字列群と同数の引き数を受け取る。 string-for-each 手続きは文字列を構成する文字について要素指向に、副作用目的で、最初の文字から最後の文字まで proc を適用する。 proc は常に string-for-each 自体と同一の動的環境で呼び出される。 string-for-each の戻り値は未規定である。

for-each の類似形である。

実装系の義務: 実装系はここで述べたように proc を適用することにより実行される範囲にかぎり、 proc についての制約を検しなければならない。実装系は proc を適用する前にそれが適切な引き数であるか確認してもかまわない。

[procedure] (string-copy string)

与えられた文字列の複製を新たに割り当てて返す。


Last modified : 2012/02/07 07:42:31 UTC