سؤال

لقد كنت أرغب في تجربة FDX التجريبي ومع ذلك، أعطاني سلسلة من الأخطاء والتحذيرات بسبب مشكلات التوافق، لذلك كنت أحاول الحصول عليها بشكل صحيح. الكود الكامل على pastebin..

أواجه مشكلة في الكود هنا:

  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

الذي يعطيني الخطأ التالي في F # التفاعلية.

Motion-Sample.fs (438،53): خطأ FS0001: عدم تطابق النوع. نتوقع أ
(('' '' 'ب) قائمة ->' ج) * (('A *' B) قائمة -> 'د)) المرجع
ولكن بالنظر إلى أ
(تعويم [،] * تعويم [،]) المرجع.
قائمة "('' '' ب) -> 'C' لا تتطابق مع نوع" تعويم [،] "

شكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول

لم يكن لدي وقت لأخذ مظهر جيد، لكن حاول تغيير تعريف meshget

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

تعديل

في الواقع، حتى أفضل، يبدو أن هناك نسخة أعذب في

http://code.msdn.microsoft.com/fsharpsamples/release/projectreleases.aspx؟release=2705.

يجب عليك استخدام ذلك بدلا من السنوات التي تم نشرها على HUBFS.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top