R6RS Scheme: 문자열
R6RS Scheme: 문자열
문자(characters)의 수열인 문자열(string)의 연산을 설명해요. 문자열 생성·접근·비교·부분 추출·결합·변환 프로시저를 시그니처와 예시로 다뤄요.
출처: 문서
본문
문자열은 문자의 수열이에요.
문자열의 길이는 그것이 포함하는 문자의 개수예요. 이 숫자는 문자열이 만들어질 때 고정돼요. 문자열의 유효한 색인들은 문자열의 길이보다 작은 정수들이에요. 문자열의 첫 문자는 색인 0을, 두 번째 문자는 색인 1을 가지는 식이에요.
(string? obj) — procedure
obj가 문자열이면 #t를, 그렇지 않으면 #f를 반환해요.
(make-string k) — procedure
(make-string k char) — procedure
길이 k의 새로 할당된 문자열을 반환해요. char가 주어지면 문자열의 모든 원소가 char로 초기화되고, 그렇지 않으면 문자열의 내용은 미지정이에요.
(string char ...) — procedure
인자들로 이루어진 새로 할당된 문자열을 반환해요.
(string-length string) — procedure
주어진 문자열의 문자 개수를 정확한 정수 객체로 반환해요.
(string-ref string k) — procedure
k는 string의 유효한 색인이어야 해요. string-ref 프로시저는 0-기반 색인(0-origin indexing)을 사용하여 string의 문자 k를 반환해요.
Note: 구현자들은
string-ref가 상수 시간에 실행되도록 해야 해요.
(string=? string1 string2 string3 ...) — procedure
문자열들이 같은 길이이고 같은 위치에 같은 문자들을 포함하면 #t를 반환해요. 그렇지 않으면 string=? 프로시저는 #f를 반환해요.
(string=? "Straße" "Strasse") ⇒ #f
(string<? string1 string2 string3 ...) — procedure
(string>? string1 string2 string3 ...) — procedure
(string<=? string1 string2 string3 ...) — procedure
(string>=? string1 string2 string3 ...) — procedure
이 프로시저들은 문자에 대한 대응하는 순서들(ordering)의 문자열로의 사전순(lexicographic) 확장이에요. 예를 들어:
(string<? "z" "zz") ⇒ #t
(string<? "z" "Z") ⇒ #f
(substring string start end) — procedure
string은 문자열이어야 하고, start와 end는 다음을 만족하는 정확한 정수 객체여야 해요:
0 ≤ start ≤ end ≤ (string-length string)
substring 프로시저는 색인 start(포함)에서 시작하여 색인 end(배제)에서 끝나는 string의 문자들로 이루어진 새로 할당된 문자열을 반환해요.
(string-append string ...) — procedure
문자들이 주어진 문자열들의 결합을 이루는 새로 할당된 문자열을 반환해요.
(string->list string) — procedure
(list->string list) — procedure
list는 문자의 리스트여야 해요. string->list 프로시저는 주어진 문자열을 이루는 문자들의 새로 할당된 리스트를 반환해요. list->string 프로시저는 list의 문자들로 이루어진 새로 할당된 문자열을 반환해요. string->list와 list->string 프로시저는 equal?에 관한 한 역(inverse)이에요.
(string-for-each proc string1 string2 ...) — procedure
문자열들은 모두 같은 길이여야 해요. proc은 문자열들의 개수만큼의 인자를 받아들여야 해요. string-for-each 프로시저는 proc을 문자열들의 문자들에 원소별로 적용해 그 부수 효과를 일으켜요. 적용 순서는 첫 문자부터 마지막 문자까지예요. proc은 항상 string-for-each 자신과 같은 동적 환경에서 호출돼요. string-for-each의 반환 값들은 미지정이에요.
for-each에 해당하는 문자열 버전이에요.
구현 책임: 구현은
proc에 대한 제약을, 설명된 대로 적용함으로써 수행되는 범위까지 확인해야 해요. 구현은proc을 적용하기 전에 그것이 적절한 인자인지 확인할 수 있어요.
(string-copy string) — procedure
주어진 문자열의 새로 할당된 복사본을 반환해요.
더 알아보기 (Learn more)
출처: Strings - R6RS