我試圖暴露出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