我一直在查看查询表达式http://msdn.microsoft.com/en-us/library/vstudio/hh225374.aspx
而且我一直在想为什么以下是合法的
let testQuery = query {
for number in netflix.Titles do
where (number.Name.Contains("Test"))
}
Run Code Online (Sandbox Code Playgroud)
但你真的不能做这样的事情
let christmasPredicate = fun (x:Catalog.ServiceTypes.Title) -> x.Name.Contains("Christmas")
let testQuery = query {
for number in netflix.Titles do
where christmasPredicate
}
Run Code Online (Sandbox Code Playgroud)
当然F#允许这样的可组合性,所以你可以重用一个谓词?如果我想在特定日期之前将圣诞节标题与另一个谓词结合起来怎么办?我必须复制并粘贴我的整个查询?C#与此完全不同,有几种方法可以构建和组合谓词