2009-07-19 5 views
0

私はFDX demoを試してみたいと思っていましたが、互換性の問題で一連のエラーと警告が表示されてしまいました。 フルコードはpastebinです。DirectXデモのF#タイプの不一致問題

私はここのコードに問題を抱えている:私は、対話型のF#に次のエラーを与える

let drawSurf f (device:Device) = 
    let m,n = meshDims !mesh in 
    let data = Array.init (n*m) (fun k -> 
           let i,j = k2ij !mesh k in 
           let x,y = meshGet !mesh (i,j) in 
           let z = f (x,y) in // single precision f 
           (x,y,z)) 
    in 
    let strips = triangleRows n m |> map (map (blendPlace !mesh data)) in 
    List.iter (fun strip -> drawTriangeStrip strip device) strips; 
    let m,n = meshDims !mesh in 
    let lines = gridLines n m in 
    let lines = lines |> map (colorPlace !mesh data Color.Black) in 
    drawLineList lines device 

を。

motion-sample.fs(438,53):エラーFS0001:タイプの不一致。
       を期待((( '*' b)のリスト - > 'C)*((' * 'b)のリスト - >' D))REF
しかし
     を与え (float [、] * float [、])ref。
型 '(' *「b)のリスト - > '任意の助けフロート' タイプと一致していません。 'C [、]'

ありがとう!

答えて

1

私は良い見てみるための時間を持っていましたが、さらに良いEDIT実際

let meshGet (mesh:_[,]*_[,]) (i,j) = let X,Y = mesh in X.[i,j], Y.[i,j] 

にmeshGetの定義を変更してみてください、

で新鮮なコピーがありますように見えるしていません

http://code.msdn.microsoft.com/fsharpsamples/Release/ProjectReleases.aspx?ReleaseId=2705

あなたはそれを使用するべきではなく、歳1がオンに投稿ハブス。

+0

リンクありがとうございます! –