这是代码:
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)
我错过了什么?
不完全确定标题描述没问题,但我确实有以下代码:
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)