F# 學習筆記 1 變數和函數

2012-02-11
日常生活

F# : 弱型態, 編譯型, Functional


// 開啟一些標準命名空間
open System

// 簡單計算
// ---------------------------------------------------------------
// 這裡是一些簡單的計算。請注意程式碼用
// '///' 加註註解的方式。將游標置於任何變數參考上方
// 就可以查看說明文件。

/// 非常簡單的常數整數
let int1 = 1

/// 第二個非常簡單的常數整數
let int2 = 2

/// 兩個整數相加
let int3 = int1 + int2

// 整數的函式
// ---------------------------------------------------------------

/// 整數的函式
let f x = 2*x*x - 5*x + 3

/// 簡單計算的結果
let result = f (int3 + 4)

/// 另一個整數的函式
let increment x = x + 1

/// 計算整數的階乘
let rec factorial n = if n=0 then 1 else n * factorial (n-1)

/// 計算兩個整數的最大公因數
let rec hcf a b =                       // 注意: 2 個參數以空格分隔
    if a=0 then b
    elif a<b then hcf a (b-a)           // 注意: 2 個引數以空格分隔
    else hcf (a-b) b
    // 注意: 函式引數通常是以空格分隔
    // 注意: 'let rec' 會定義遞迴函式