我试图暴露出2维数组作为序列的对象上的序列(以能够做具体Seq.fold (fun x -> Seq.fold (fun ->..) [] x) []
MYTYPE东西)在F#实现序列的序列
下面是一个玩具程序暴露该相同功能。
从我所了解的情况来看,这里有很多事情发生,首先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会记得检查自己的类型签名....感谢大家的帮助 – Snark 2011-04-08 20:44:27