共用方式為


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

請參閱

參考

Core.Option 模組 (F#)

Microsoft.FSharp.Core 命名空間 (F#)

變更記錄

日期

History

原因

2010 年 5 月

加入程式碼範例。

資訊加強。