F# 學習筆記 4 更多函式

2012-02-11
日常生活
// 函式
// ---------------------------------------------------------------

/// 計算輸入值之平方的函式
let Square x = x*x              

// 在值清單之間對應函式
let squares1 = List.map Square [1; 2; 3; 4]
let squares2 = List.map (fun x -> x*x) [1; 2; 3; 4]

// 管線
let squares3 = [1; 2; 3; 4] |> List.map (fun x -> x*x) 
let SumOfSquaresUpTo n = 
  [1..n] 
  |> List.map Square 
  |> List.sum

建立函式是Functional language 的最常手法所以F# 建立它的方法也同樣多姿多彩
let squares2 = List.map (fun x -> x*x) [1; 2; 3; 4]這句最能表現F# 的魅力
fun x-> x*x 是anonymous function
因為呼叫方法和shell 一樣, 所以squares2 就變所List 放到裡面去(1;4;9;16)