2017-06-23 7 views
1

私はF#を学ぼうとしており、this sample(37ページ、kmeans関数内)に従っています。私のコードはF#私はList.nthの代わりにList.itemを使用するには、以下を更新する必要があります。F#List.item演算子expr。[idx]不定型のオブジェクトに使用

let centroids = 
    let random = System.Random() 
    [for i in 1 .. clusterCount -> 
     data.[(random.Next(data.Length))]] 

しかし、私は今、最後の行にThe operator expr.[idx] has been used on object of indeterminate type... Consider adding further type constrainsをというエラーが出ます:

let centroids = 
    let rnd = System.Random() 
    [ for i in 1 .. clusterCount -> 
     List.nth data (rnd.Next(data.Length)) ] 

なります。 (data:(float*float)list)タイプの制約を追加すると消えてしまいますが、data'a listというように柔軟に保つにはどうすればいいですか?まだList.itemを使用していますか?

+2

ジェネリック型に注釈を付けていないのはなぜ。 –

答えて

3

あなたは、型注釈としてジェネリック型を使用することができます。

(data : 'a list) 

それとも、あなたはそれに名前を付けたくない場合:

(data : _ list) 
関連する問題