, , F # 3.0 . , F # 3.0 IQueryable, #, .
, . F # SQL- ( ), - , FQ (), , , LINQ to SQL ( , , ).
, :
open System.IO
open Microsoft.FSharp.Quotations
type MyQueryBuilder() =
member x.For(a, body) = Seq.collect body a
member x.Quote(e) = e
member x.YieldFrom(s) = s
member x.Run(e:Expr<'T>) : 'T = failwithf "%A" e
let mquery = MyQueryBuilder()
let n = [1 .. 10]
let rec nums a : seq<int> =
mquery { for b in n do
yield! nums b }
Run , . MyQueryBuilder query - . query.Run ( IQueryable).
, , , , , , , - , , . , LINQ to SQL , , - , .