F#编译器似乎以(相当)严格的从上到下,从左到右的方式执行类型推断.这意味着您必须执行诸如在使用之前放置所有定义,文件编译的顺序很重要,并且您倾向于需要重新排列内容(通过|>或有什么)以避免使用显式类型注释.
如何使这更灵活,并且计划用于F#的未来版本有多难?显然它可以完成,因为Haskell(例如)没有这种限制同样强大的推理.F#的设计或意识形态是否有任何本质上的不同?
在F#,Nominative还是Structural?答案说,我可以通过一些奇特的机制欺骗F#像结构类型的语言一样工作.我怎么能这样做?