小编Hel*_*olm的帖子

使用sequence属性创建一个F#类

这是代码:

type Advertisement() =
    member val Photos = seq<images> with get,set
Run Code Online (Sandbox Code Playgroud)

但是这会返回属性Photos as的函数签名

seq<images> -> seq<images>
Run Code Online (Sandbox Code Playgroud)

我只想要属性来表示一系列图像

seq<images>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

f#

5
推荐指数
1
解决办法
116
查看次数

计算表达式与应用函子和什么不是

不完全确定标题描述没问题,但我确实有以下代码:

paket.dependencies:

source https://www.nuget.org/api/v2
nuget fsharpx.extras
nuget mongodb.driver
Run Code Online (Sandbox Code Playgroud)

some.fsx:

#r @".\packages\MongoDB.Bson\lib\net45\MongoDB.Bson.dll"
#r @".\packages\MongoDB.Driver\lib\net45\MongoDB.Driver.dll"
#r @".\packages\MongoDB.Driver.Core\lib\net45\MongoDB.Driver.Core.dll"

#r @".\packages\FSharpX.Extras\lib\net45\FSharpX.Extras.dll"


open MongoDB
open MongoDB.Driver
open MongoDB.Bson 
open MongoDB.Bson.Serialization

open FSharpx.Choice

let private createClient (connectString:string) = MongoClient(connectString)
let CreateClient = protect createClient

let private getDb name (client:IMongoClient) = client.GetDatabase(name)
let GetDB1 name client =
    choose {
        let! c = client
        return! (protect (getDb name) c)
    }

let GetDB2 name (client:Choice<IMongoClient, exn>) =
    protect (getDb name)
    <!> client
Run Code Online (Sandbox Code Playgroud)

这个"excersise"的意思是编写GetDB2,以便它与GetDB1一样,但使用运算符(applicatives?),但我现在无法转过头去管理它.

上面的代码编译,但对于GetDB1和GetDB2签名是不相等的,和Im显然做一些正确的.

val GetDB1 : …
Run Code Online (Sandbox Code Playgroud)

monads f# computation-expression fsharpx

3
推荐指数
1
解决办法
243
查看次数

标签 统计

f# ×2

computation-expression ×1

fsharpx ×1

monads ×1