Option.fold<'T,'State> 函式 (F#)
更新:2010 年 5 月
評估 List.fold 」 選項的對等用法。
命名空間/模組路徑:Microsoft.FSharp.Core.Option
組件:FSharp.Core (在 FSharp.Core.dll 中)
// Signature:
fold : ('State -> 'T -> 'State) -> 'State -> 'T option -> 'State
// Usage:
fold folder state option
參數
folder
型別:'State -> 'T -> 'State從選項指定值時更新狀態資料的函式。
state
型別:'State初始狀態。
option
Type: 'T option輸入選項。
傳回值
原始狀態,如果選項是 None,否則它會傳回更新的狀態,使用資料夾] 及 [ 選項值。
備註
在運算式 fold f s inp評估為 match inp with None -> s | Some x -> f s x
這個函式是名為 Fold中 已編譯的組件。 如果從一個語言,F # 以外,或透過反映存取函式使用這個名稱。
範例
下列程式碼說明如何使用 Option.fold。
let consOption list opt =
Option.fold (fun state value -> value :: state) list opt
printfn "%A" <| consOption [1 .. 10] None
printfn "%A" <| consOption [1 .. 10] (Some(0))
// Read input from the console, and if the input parses as
// an integer, cons to the list.
let readNumber () =
let line = System.Console.ReadLine()
let (success, value) = System.Int32.TryParse(line)
if success then Some(value) else None
let mutable list1 = []
let mutable count = 0
while count < 5 do
printfn "Enter a number: "
list1 <- consOption list1 (readNumber())
printfn "New list: %A" <| list1
count <- count + 1
輸出
平台
Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2
版本資訊
F# 執行階段
支援版本:2.0、4.0
Silverlight
支援版本:3
請參閱
參考
Microsoft.FSharp.Core 命名空間 (F#)
變更記錄
日期 |
History |
原因 |
---|---|---|
2010 年 5 月 |
加入程式碼範例。 |
資訊加強。 |