我刚开始学习 F#,并且对类型推断印象深刻,我想我会尝试一个从表中获取第一条记录的函数(使用查询表达式,Linq 样式):
let getfirst data =
let result = query { for n in data do take 1 }
result |> Seq.head
这行得通,类型是IQueryable<'a> -> 'a
.
但是为什么这个版本不起作用?
let getfirst2 data =
query { for n in data do head }
不应该像上次一样for n in data do head
给出标量吗?'a
有人可以解释为什么第二个版本不起作用,以及如何在不使用 Seq.head 的情况下使其工作吗?