【发布时间】:2011-08-01 19:18:51
【问题描述】:
我正在尝试将二维数组公开为对象上的序列序列(以便能够专门做 Seq.fold (fun x -> Seq.fold (fun ->..) [] x) [] mytype 的东西)
下面是一个展示相同功能的玩具程序。
据我了解,这里发生了很多事情,首先IEnumerable 有一个模棱两可的重载,需要一个类型注释来明确隔离您正在谈论的IEnumerable。
但是单元也可能存在问题,需要额外的帮助:
type blah =
class
interface int seq seq with
member self.GetEnumerator () : System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<(int*int)>> =
seq{ for i = 0 to 10 do
yield seq { for j=0 to 10 do
yield (i,j)} }
end
是否有某种方法可以让上述代码按预期工作(返回 seq<seq<int>>)还是我遗漏了一些基本的东西?
【问题讨论】:
-
你会认为学习 FP 的人会记得检查他的类型签名......谢谢大家的帮助
标签: interface f# types overriding