我刚开始学习F#,并通过类型推断我想我会尝试从表中得到的第一条记录的功能(使用查询表达式,LINQ的风格)印象深刻:F#返回值
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的情况下使其工作?
谢谢,是'result |> Seq.head'一个明智的,有效的解决方案吗? – user826840
@ user826840 - 可能(尽管它可能会导致稍微不同的查询的执行),或者只是按照Nikon Third建议的那样添加类型注释。 – kvb