我正在为 SQL ( http://github.com/kolosy/furious ) 编写一个 F# dsl。
选择语句如下所示:
type person = {
personId: string
firstname: string
lastname: string
homeAddress: address
workAddress: address
altAddresses: address seq
}
and address = {
addressId: string
street1: string
zip: string
}
let (neighbor: person seq) =
db.Yield <@ Seq.filter (fun p -> p.homeAddress.zip = '60614') @>
一个明显(也是愚蠢)的问题是......我如何参数化报价?
如果我只是喜欢:
let z = "60614"
let (neighbor: person seq) =
db.Yield <@ Seq.filter (fun p -> p.homeAddress.zip = z) @>
然后z
被解析为静态属性访问器(PropertyGet(None, String z, [])
)。我需要一些能让我仅根据引用检索变量/let 绑定的值的东西。想法?