型とリテラル

型は値をその種類に応じて分類したものです。 リテラルは値を直接表現する記法のことです。

整数型 (Int型)

Int型は32ビット長の符号付整数を表す型です。

Int型リテラル

整数リテラルは123のように数字を並べて10進数で表現します。

整数リテラルを16進数で表現するには0xまたは0Xで数値を始めます。 例えば0xffは16進数整数リテラルです。他にも、0oまたは0Oで 始まる8進数リテラル、0bまたは0Bで始まる2進数リテラルが 利用できます。

浮動小数点数型 (Double型)

Double型は倍精度の浮動小数点数を表す型です。

Double型リテラル

Double型リテラルは3.14のような小数表示、6.626e-34のような指数表記 が可能です。 `

文字列型 (String型)

String型は文字列の型です。

String型リテラル

String型リテラルは"abc"のように文字列をダブルクォーテーション で文字列を囲んで表します。

ダブルクォーテーション自体や特殊文字を表すために、 以下のエスケープシーケンスが定義されています。

エスケープシーケンス 意味
\' 単一引用符
\" 二重引用符
\\ 円記号
\0 ヌル
\a 警告
\b バックスペース
\f フォームフィード
\n 改行
\r キャリッジリターン
\t 水平タブ
\uxxxx ユニコード文字
\v 垂直タブ

逐次文字列は@"\n"のように文字列リテラルの先頭に@を付けて表します。 逐次文字列内では、エスケープシーケンスは処理されません。

文字型 (Char型)

Char型は文字の型です。

文字リテラル

文字リテラルは'A'のように文字をシングルクォーテーションで 文字を囲んで表します。文字列の内部同様エスケープシーケンスが 利用できます。

真偽値型 (Bool型)

Bool型は真偽値の型です。

真偽値リテラル

真であることを表すtrueと偽であることを表すfalseが 定義されています。

ユニット型 (()型)

()型はユニット型です、唯一の値()を持ちます。 これは副作用をもつ関数の戻り値として利用します。

リスト型 ([α]型)

リストは同じ型の値を並べたデータ構造です。 要素の型をαとすると、リストの型は[α]と表します。

リストリテラル

リストリテラルは[1,2,3]のように、 []の間に要素をカンマで区切って並べます。 空のリストは[]で表します。

タプル型

タプルは異なる型の2つ以上の値を一つにまとめたデータ構造です。 例えば、整数型と文字列型の要素を格納可能なタプルの型は、 (Int, String)のように、括弧で型名をカンマで区切って指定します。 タプルの長さに制限はありません。

タプルリテラル ((α, β, ...)型)

タプルリテラルは(1, "abc")のように、 括弧の間に要素をカンマで区切って並べます。

関数型 ((α -> β)型)

関数型は関数の型です。引数の型がα、 戻り値の型がβの関数の型は、 (α -> β)型になります。

関数リテラル (ラムダ式)

関数リテラル(ラムダ式)は以下の構文で表します。

\パターン -> 式

パターンは以下のように複数並べることができ、 その場合は複数のラムダ式に展開されます。

\パターン1 パターン2 ... -> 式

ユーザ定義型

type文で導入した型は、型が要求される場所で自由に使えます。

.NET型

.NETの型は{System.Object}のように、{}の間にクラス名を 指定して表します。