I’m writing a quick DB perf test, and chose F# so I can get more practice.
I’ve created a method, measureSelectTimes, which has the signature Guid list * Guid list -> IDbCommand -> TimeSpan * TimeSpan.
Then, I call it:
let runTests () =
let sqlCeConn : IDbConnection = initSqlCe() :> IDbConnection
let sqlServerConn : IDbConnection = initSqlServer() :> IDbConnection
let dbsToTest = [ sqlCeConn; sqlServerConn ]
let cmds : seq<IDbCommand> = dbsToTest |> Seq.map initSchema
let ids : seq<Guid list * Guid list> = cmds |> Seq.map loadData
let input = Seq.zip ids cmds
let results = input |> Seq.map (fun i -> measureSelectTimes (fst i) (snd i))
// ...
I’ve annotated explicitly with types to clarify.
What I can’t figure out is how to call measureSelectTimes without the lambda. I’d like to partially apply the ids to it like this: ids |> Seq.map measureSelectTimes but then I don’t know what to do with the resulting partially applied functions to then map onto the cmds. What’s the syntax for this?
You can use
Seq.map2:Or