【发布时间】:2009-05-10 05:07:34
【问题描述】:
我有一个 FileInfo 序列,但我只关心它们的字符串名称,所以我想要一个字符串序列。起初我尝试过这样的事情:
Seq.map (fun fi -> fi.Name) fis
但由于某种原因,F# 的类型推断不足以实现这一点,并让我明确地给“fi”一个类型:
Seq.map (fun (fi : FileInfo) -> fi.Name) fis
为什么需要这个注解?如果知道fis : seq<FileInfo>和Seq.map : ('a -> 'b) -> seq<'a> -> seq<'b>,那么是不是应该推断lambda表达式的类型是FileInfo -> 'b,然后从fi.Name : string进一步推断它的类型是FileInfo -> string?
【问题讨论】:
标签: f# type-inference