(14-4)[ML] string型の定数と基本操作
string型定数
MLの文字列定数は,
"Hi, there!"
のように"(double quote)で囲んで記述する.この中に,文字型の時と同様,以下のエスケープ文字を書くことができる.
| エスケープ文字 | 意味 |
|---|---|
| \a | 警告 (ASCII 7) |
| \b | バックスペース (ASCII 8) |
| \t | タブ(ASCII 9) |
| \n | 改行(ASCII 10) |
| \v | 垂直タブ (ASCII 11) |
| \f | フォームフィード(ASCII 12) |
| \r | 復帰 (return) (ASCII 13) |
| \\^C | 制御文字C |
| \\ | 文字 |
| \" | 文字" |
| \ddd | 数字dddに対応するアスキー文字 |
| \f ... f\ | フォーマット文字f(空白,改行,タブ)で挟まれた文字を無視 |
以下はこれら定数の例である,
# "Hi, I am SML#"; val it = "Hi, I am SML#" : string # "Hi, I am SML#.\ > \ I became operational on March 31, 2007."; val it = "Hi, I am SML#. I became operational on March 31, 2007." : string # "Hi, I am SML#.\n\ > \I became operational on March 31, 2007."; val it = "Hi, I am SML#.\nI became operational on March 31, 2007." : string # print it; Hi, I am SML#. I became operational on March 31, 2007.val it = () : unit #
最後のprintは文字列データを端末に印字する関数である.
string型の基本操作(対話型環境に定義済み)
| 式 | 意味 |
|---|---|
| size s | 文字列sの長さ(文字数) |
| substring(s,i,j) | 文字列sのi番目(はじめは0)からj文字の部分列 |
| explode s | 文字列sを文字のリストに変換 |
| implode L | 文字のリストLを文字列に変換 |
| concat L | 文字列のリストを一つの文字列に連結 |
| s1 <= s2 | 文字列s1と文字列s2の比較 |
| s1 < s2 | 文字列s1と文字列s2の比較 |
| s1 >= s2 | 文字列s1と文字列s2の比較 |
| s1 > s2 | 文字列s1と文字列s2の比較 |
| s1 ^ s2 | 文字列s1と文字列s2の連結 |
| print s | 文字列sを端末にプリントする |
substringは,文字列の範囲を越えた部分を指定するとSubstring例外が起る.
strin型の基本操作(ライブラリ関数)
string型の基本ライブラリ名はStringである,その内容は以下の通り,
# structure A = String;
structure A
: sig
type char = Char.char
type string = string
val < : string * string -> bool
val <= : string * string -> bool
val > : string * string -> bool
val >= : string * string -> bool
val ^ : string * string -> string
val collate : (char * char -> order) -> string * string -> order
val compare : string * string -> order
val concat : string list -> string
val concatWith : string -> string list -> string
val explode : string -> char list
val extract : string * int * int option -> string
val fields : (char -> bool) -> string -> string list
val fromCString : String.string -> string option
val fromString : String.string -> string option
val implode : char list -> string
val isPrefix : string -> string -> bool
val isSubstring : string -> string -> bool
val isSuffix : string -> string -> bool
val map : (char -> char) -> string -> string
val maxSize : int
val size : string -> int
val str : char -> string
val sub : string * int -> char
val substring : string * int * int -> string
val toCString : string -> String.string
val toString : string -> String.string
val tokens : (char -> bool) -> string -> string list
val translate : (char -> string) -> string -> string
end
#
Keyword(s):
References:[(15)[ML] 基本データ型と基本演算]