値(value)と型(type)

MSDNによるとF#の値(value)は、特定の型(type)を持つ数量(quantity)ですと記述があります。 型とはデータの種類のことです。 777や4649などは、int型(ある範囲の整数を表す)の値であり "777"や"hello"や"こんにちは!"などは、string型(文字列を表す)の値になります。 型があることによって 型にまつわるエラーをコンパイラが事前にチェック出来るという メリットがあります。 例えば、文字列と数値を足しあわせようとする 想定とは異なる使い方をした場合、コンパイルエラーが起きます。 もちろん、文字列に数値を(文字列として)くっつけたい場合もあるかもしれません。 そういう場合は、数値を文字列に変換してから 文字列同士を結合すれば、コンパイルエラーは出なくなる、というわけです。 また、F#では、型を組み合わせることで さらに新しい型を作ることが出来ます。 例えば、総称型やクラス、Discriminated Unionなどが利用でき、 型の種類に制約を与える機能も利用出来ます。 これらについては先の章で解説予定ですが、 このような機能を利用することで 型チェックの利点を生かしたまま 抽象化能力を手に入れることが出来ます。 -ここは、最初は飛ばしても問題ないです- なお、null値(null value)という特殊な値がありますが これは通常、F#の値(value)として使われたり、変数(variable)に格納されたりすることはありません。 とあります。 これは.Net Frameworkとの連携のためにある値で、 F#は出来るだけnullの利用を減らそうとしているそうです(5.4.8) また、値としてのnullはunit型の値やoption型のNoneに使われています(5.4.8)
null value
> printfn "%A" ();;
<null>
> printfn "%A" None;;
<null>
val it : unit = ()