(14-4)[ML] string型の定数と基本操作

[ トップ | 目次 | 前ページ | 次ページ ]


C言語と違い,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
#

[ トップ | 目次 | 前ページ | 次ページ ]

Last modified:2007/05/07 02:15:38
Keyword(s):
References:[(15)[ML] 基本データ型と基本演算]