基本的な型の紹介

dotnet fsiコマンドでインタプリタfsiを起動して、1;;と入力しEnterを押してみてください。 次のような結果が表示されます。 (F#では、#lightモードでない場合、文の終わりは;;で表しますが インタプリタを使う場合は#lightモードであっても;;が必要です。)
サンプルコード
> 1;;
val it : int = 1
これは、itという名前にint型の値の1が割り当てられていることを表しています。 このようにして、値にどのような型がついているのかを確認できます。 itはfsiインタプリタ用の特殊な名前で 「最後に入力した値」が自動的に割り当てられます。 (itは英語で「それ」を表す単語) ここから先は、F#で定義されている基本的な型を紹介します。 F#の基本的な型は.Net Frameworkで定義されている型と 対応しているので、それについてもあわせて記述します。 このページに記述していないものも含む全てのプリミティブ型と .Net Frameworkのクラスの別名を持つ型は 付録1にまとめてありますので参考にしてください。

int型またはint32型

MSDN:(System.Int32) int型(System.Int32)は -2,147,483,648 から +2,147,483,647 までの値の 符号付き整数を表します おそらく最もよく使う型の一つで F#では普通の整数値はint型になります。
int型
> 10;;
val it : int = 10
便利な記法として、数値の先頭に  0bを付けると2進数  0oを付けると8進数  0xを付けると16進数 として数値を入力することが出来ます。 16進数の場合、0-9の数値の後はaが10、bが11、cが12、dが13、eが14、fが15に対応します。
16進数、8進数、2進数での記法
> 0b1010;;
val it : int = 10
> 0o12;;
val it : int = 10
> 0x0a;;
val it : int = 10

char型

MSDN:(System.Char) char型はUnicode文字を表す型です。
char型
> 'a';;
val it : char = 'a'
> 'あ';;
val it : char = 'あ'
> '¥u3042';;	//「¥u数値」で、unicodeの文字コード指定も可能
val it : char = 'あ'

string型

MSDN:(System.String) string型(System.String)は文字列を表す型で Unicode文字列のシーケンスを表します 文字列は一度定義した後は変更することは出来ません(読み取り専用) もし変更可能な文字列が使いたい場合は System.Text.StringBuilderクラスを使います。
string型
> "Hello world";;
val it : string = "Hello world"
また、先頭に@をつけた逐語的文字列(verbatim string)という形式も使えます。 こうすると、¥をエスケープシーケンスではなく文字として解釈してくれます(3.5) ファイルのパスを表す文字列などでよく利用します。
verbatim string
> @"C:¥WINDOWS¥system32";;
val it : string = "C:¥WINDOWS¥system32"
> "C:¥¥WINDOWS¥¥system32";;
val it : string = "C:¥WINDOWS¥system32"

byte型

MSDN:(System.Byte) byte型は8ビットの0 から 255 までの範囲の符号なし整数を表します。 byte型の値は、数値の後ろにuyを付けて表現します。
byte型
> 10uy;;
val it : byte = 10uy
文字列のうしろに大文字のB(小文字では×)を付けることで byte型の値の配列を表す略記法があります(配列については後で説明します)
byte配列の略記法
> "hello"B;;
val it : byte [] = [|104uy; 101uy; 108uy; 108uy; 111uy|]
逐語的文字列(verbatim string)の形式も使えます。
byte配列の逐語的文字列
> @"c:¥temp"B;;
val it : byte [] = [|99uy; 58uy; 92uy; 116uy; 101uy; 109uy; 112uy|]

sbyte型

MSDN:(System.SByte) sbyte型は8ビットの-128 から +127 までの範囲の整数を表します。 sbyte型の値を表すには、数値の後ろにyを付けます
sbyte型
> 10y;;
val it : sbyte = 10y

float型またはdouble型

MSDN:(System.Double) float型またはdouble型(どちらもSystem.Double型)は -1.79769313486232e308 から +1.79769313486232e308までの 倍精度 64 ビット数値、正の 0 または負の 0、 PositiveInfinity、NegativeInfinity、および非数 (NaN) を表します。 これはIEEE 754規格に準拠した倍精度の浮動小数点になります。
float型
> 10.0;;
val it : float = 10.0
> 10.;;
val it : float = 10.0
> 1000000000000000.0;;
val it : float = 1e+15
> 1./0.;;
val it : float = infinity
> -1./0.;;
val it : float = -infinity
小数点以下は省略することが出来ます。 その場合、少数部は0になります。

single型またはfloat32型

MSDN:(System.Single) single型またはfloat32型(どちらもSystem.Single)は 、-3.402823e38 から +3.402823e38 までの単精度 32 ビット数と、 正の 0 または負の 0、PositiveInfinity、 NegativeInfinity、および非数 (NaN) を表します。 これはIEEE754規格準拠の単精度の浮動小数点になります。 single型の値を表すには、数値の後にfを付けます。
single型
> 1.0f;;
val it : float32 = 1.0f
> 10.;;
val it : float = 10.0
> 1.f/0.f;;
val it : float32 = infinityf
> -1.f/0.f;;
val it : float32 = -infinityf
> 100000000000.f;;
val it : float32 = 9.9999998e+10f

bool型

MSDN:(System.Boolean) bool型(System.Boolean)はtrue(真)とfalse(偽)の2つの値だけを持つ 真偽値を表す型です。
bool型
> true;;
val it : bool = true
> false;;
val it : bool = false
> 1+1=2;;
val it : bool = true

参考:プリミティブ型

-ここは最初はとばしてしまって問題無いです- 次の型はプリミティブ型(primitive types)と呼ばれています基本型より
プリミティブ型
bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, decimal, float, double, float32, single, char, string, unit
これらは全て値型(Value Type)です。 値型というのは、値がスタックに格納されるか オブジェクトまたは配列にインラインで含まれる型のことです  A type that is allocated on the stack or inline in an object or array.(f#4.1 spec glossary v) 値型はこれで全てではなく、構造体(struct)なども値型になります。