computation-expression

    1熱度

    3回答

    我想爲這兩個表達式構建一個計算表達式。 這足以 type Result<'TSuccess> = | Success of 'TSuccess | Failure of List<string> type Foo = { a: int b: string c: bool } type EitherBuilder() = member this.

    9熱度

    2回答

    我想通過實現我自己的一個來更多地瞭解F#的計算表達式。但是,我已經碰到了與Bind方法有關的絆腳石。下面是我到目前爲止有: type public op<'a> = Op of ('a list -> 'a list) let inline (>>) (Op a) (Op b) = Op (a >> b) module Op = let id = Op id let b

    10熱度

    3回答

    (後來的遊客:兩個答案對這個問題均可以得到出色的洞察力,如果你有興趣,你也許應該閱讀他們兩個,我只除了一個爲SO限制) 從我在網上找到的所有討論在繼續單子中,他們要麼提到它如何與一些簡單的例子一起使用,要麼說明它是一個基本的構建塊,正如這篇關於Mother of all monads is the continuation monad的文章。 我想知道在這個範圍之外是否有適用性。我的意思是,在遞歸

    1熱度

    1回答

    This project對我來說真的是sourceofquestions。 我已經瞭解了多態遞歸,我明白爲什麼它是一個特殊情況,因此F#需要完整類型的註釋。 對於常規功能,我可能需要一些小動作,但通常是正確的。現在我試圖將一個(工作)基本toSeq適應更專業的手指樹,但不能。 我的感覺是計算表達式的使用與它有關。這是濃縮的工作版本: module ThisWorks = module

    3熱度

    1回答

    不能完全確定標題所描述的那樣好,但我也有關於下面的代碼: paket.dependencies: source https://www.nuget.org/api/v2 nuget fsharpx.extras nuget mongodb.driver some.fsx: #r @".\packages\MongoDB.Bson\lib\net45\MongoDB.Bson.dll" #

    4熱度

    2回答

    我學習F#現在正在閱讀有關計算表達式和查詢表達式與SQL類型的提供者使用。我在做一些簡單的任務,並在來連接(聯盟)的2個查詢,我的第一個念頭,讀取序列,並列出有關yield後需要一些點是做同樣的查詢表達式像這裏面: query { yield! for a in db.As select { // projection } yield! for b in db.Bs selec

    2熱度

    3回答

    如果我有一個函數試圖分兩次起始號碼。整個工作流程必須返回布爾值。 let divideBy bottom top = if bottom = 0 then None else Some (top/bottom) let divideByWorkflow init x y = match init |> divideBy x with | None ->

    4熱度

    1回答

    我想圍繞我的頭定義狀態建設者,我不能周圍的一些編譯器錯誤得到 type Movement = | Left of int | Right of int type MovementState = Movement list -> Movement list type MovementBuilder() = member x.Zero() : MovementSt

    2熱度

    1回答

    我有以下計算表達式生成器: type ExprBuilder() = member this.Return(x) = Some x let expr = new ExprBuilder() 我理解的方法返回目的,零和聯合,但我不明白是什麼表達式之間的區別如下所示: let a = expr{ printfn "Hello" return 1 }

    6熱度

    1回答

    我環顧四周,努力得到答案;我確信有一個明顯的答案,但我似乎無法找到它;或者我遇到了與計算表達式一起使用時無法傳遞的引用限制。 基本上我想使用計算F#工作流,使用引用的lambda定義如下。嘗試將這些工作流程組合在一起時會出現問題。理想情況下,我想使用let組合工作流程<'Env,'Result>實例。句法。我的有些幼稚嘗試低於: type Workflow<'Env, 'Result> = Exp