SML# - Tutorial/014-2 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/014]] | [[ 次ページ |Tutorial/015]] ]
----
!char型の定数
char型の定数は
#"a"
の形式である,このように#"と"の間に文字を書くとその文字の定数となる,(#はプロンプトではなく式の一部である,)
# #"a";
val it = #"a" : char
文字以外に以下のエスケープ文字が書ける,
||!エスケープ文字||意味||
|| \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に対応するアスキー文字||
以下はこれら定数の例である,
# #"a";
val it = #"a" : char
# #"\n";
val it = #"\n" : char
# #"\010";
val it = #"\n" : char
# #"\\";
val it = #"\\" : char
# #"\^C";
val it = #"\^C" : char

(補足)\文字は,本チュートリアルに従いセットアップされた環境では,
バックスラッシュとして表示されるはずである,
!char型の基本演算(トップレベルの対話型環境で定義されているもの)
||!式||!意味||
||ord a||文字aのアスキーコード||
||chr a||アスキーコードaを持つ文字||
||str a||文字aを文字列データに変換||
||implode a||文字aのリストを文字列に変換||
||explode a||文字列aを文字のリストに変換||
||a < b||文字の比較||
||a > b||文字の比較||
||a <= b||文字の比較||
||a >= b||文字の比較||
以下,簡単な使用例である,
# #"a";
val it = #"a" : char
# #"A";
val it = #"A" : char
# if #"a" > #"A" then "a is bigger" else "A is bigger";
val it = "a is bigger" : string
# chr(ord #"S" + (ord #"a" - ord #"A"));
val it = #"s" : Char.char
# explode "SML#";
val it = [#"S", #"M", #"L", #"#"] : char list
(補足)
* chr(ord #"S" + (ord #"a" - ord #"A"))は,Sを小文字に変換している,まず,Sのコードをもとめ,そのコードに大文字と小文字のコードの差を足している,
* [#"S", #"M", #"L", #"#"] は#"S", #"M", #"L", #"#" からなるリストである,このようにリストは[と]の中に要素を列挙する,リストは後で詳しく学ぶ,

!char型の基本演算(ライブラリ関数)
char型のライブラリはCharである,この中身は,int型の場合同様,以下のようにしてプリントすることができる,
# structure A = Char;
structure A
: sig
     type char = char
     type string = String.string
     val < : char * char  -> bool
     val <= : char * char  -> bool
     val > : char * char  -> bool
     val >= : char * char  -> bool
     val chr : int  -> char
     val compare : char * char  -> order
     val contains : string  -> char  -> bool
     val fromCString : String.string  -> char option
     val fromString : String.string  -> char option
     val isAlpha : char  -> bool
     val isAlphaNum : char  -> bool
     val isAscii : char  -> bool
     val isCntrl : char  -> bool
     val isDigit : char  -> bool
     val isGraph : char  -> bool
     val isHexDigit : char  -> bool
     val isLower : char  -> bool
     val isPrint : char  -> bool
     val isPunct : char  -> bool
     val isSpace : char  -> bool
     val isUpper : char  -> bool
     val maxChar : char
     val maxOrd : int
     val minChar : char
     val notContains : string  -> char  -> bool
     val ord : char  -> int
     val pred : char  -> char
     val scan : ['a .(char, 'a) StringCvt.reader  -> (char, 'a) StringCvt.reader]
     val succ : char  -> char
     val toCString : char  -> String.string
     val toLower : char  -> char
     val toString : char  -> String.string
     val toUpper : char  -> char
   end
#
----
[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/014]] | [[ 次ページ |Tutorial/015]] ]