基本

基本 の F#

1個の演習

基本について

F#では、型を持ち、定義できるものはすべて_値_と呼ばれます。これには真偽値、整数、配列だけでなく、関数も含まれます。整数値は1つ以上の(連続した)数字として定義され、標準の数学演算子をサポートします。

値に名前を割り当てることを_バインディング_と呼びます。バインディングはイミュータブルであり、そのため他の言語の定数に似ています。バインディングはletキーワードを使って定義します。

F#は静的型付け言語なので、各バインディングには型があります。ほとんどのバインディングでは型を指定する必要はありません。F#の_型推論_が、通常はその値から型を推論できるからです。

// Automatically inferred type
let fingers = 10

関数も通常のバインディングですが、1つ以上の仮引数を持ちます。関数は最後の式を自動的に返します。型推論はほとんどの関数でも機能し、その関数がどんな値で呼び出され、どんな値を返すかを分析します。

// Automatically inferred types for parameters and return type
let add x y = x + y

関数を呼び出すには、関数名を指定し、その関数の各仮引数に引数を渡します。

let five = add 2 3

バインディングの型を推論できない場合、コンパイラーはエラーを報告します。これを解決するには、バインディングの型を明示します。

// Explicit type annotation
let fingers: int = 10

// Explicit type annotation (also for parameters)
let add (x: int) (y: int): int = x + y

F#のバインディングは、定義した_後_でなければ使えません。定義する前にバインディングを使うと、コンパイルエラーになります。

// Compile error as the add binding has not yet been defined
// let seven = add 3 + 4

let add x y = x + y

スコープの定義には有意な空白を使います。バインディングを宣言する行を基準にして、スペースでコードをインデントします。既定の規則では、インデントにスペース4つを使います。

let toes =
    let left = 5
    let right = 5
    left + right

let multiplyPlusTwo x y =
    let product = x * y
    product + 2

// Trying to access the left, right or product bindings
// here would result in a compile error

F#のバインディング(関数も含まれます)は、通常はモジュールにまとめられます。モジュールは関連する機能をグループ化するもので、moduleキーワードを使って定義します。モジュールの定義は、そのバインディングより前に置く必要があります。

module Calculator

let pi = 3.14

let add x y = x + y

F#は2種類のコメントをサポートしています。単一行コメントは//で始まり、複数行コメントは(*と*)の間に書きます。

GitHubで編集 リンクは新しいウィンドウまたはタブで開きます

基本を学習する