数値型

F#型名 サフィックス .NET型
byte uy System.Byte
sbyte y System.SByte
int16 s System.Int16
uint16 us System.UInt16
int, int32 System.Int32
uint, uint32 u System.UInt32
int64 L System.Int64
uint64 UL System.UInt64
float System.Double
float32 f System.Float
decimal M System.Decimal

サフィックスは数値の直後に付ける文字。
整数値のデフォルトは int 、小数値のデフォルトは float。

F#の数値リテラルはデフォルトでは10進表記だが、
プレフィックスによって2進、8進、16進として扱える。

進数 プレフィックス
10進
2進 0b
8進 0o
16進 0x

多倍長整数

その名の通り、64ビットを超える巨大な整数も扱えるようになる。

F#型名 サフィックス .NET型
bigint I System.Numerics.BigInteger

文字

文字型はcharで内部的にはUTF-16の値を保持している。
つまり2バイト。

文字リテラルは ‘a’ のようにアポストロフィーで囲む。

一部の文字はエスケープシーケンスで表す。

文字 文字の意味
\’ アポストロフィ
\” ダブルクオーツ
\\ バックスラッシュ
\b バックスペース
\n LF
\r CR
\t 水平タブ

文字列

型名は string で、リテラルは “abc” のようにダブルクオーツで囲む。

> let s1 = "any string";;

val s1 : string = "any string""

コード上で改行を含んでも構わない。

> let s2 = "line1
            line2
            line3"
;;

val s2 : string = "line1
            line2
            line3"

コード上でのみ改行する場合。
行末にバックスラッシュで、改行と続く空白文字が無視される。

> let s3 = "line1-\
            continue-\
            last"
;;

val s3 : string = "line1-continue-last"

文字列リテラルに B サフィックスを追加することで byte 配列に変換される。
byte に格納できない文字が含まれているとエラーになるので注意。

> let str = "test"B;;

val str : byte [] = [|116uy; 101uy; 115uy; 116uy|]

ブール値

型名は bool で、.NET型名は System.Boolean
true (真)か false (偽)のどちらかを持つ。