好的。我沒有要求plssendcodezkthx。但是我對FP有點新,我想弄清楚如何做到這一點,因爲我知道我有的代碼不會實現我想實現的目標。所以,關於優化的所有論點,這裏是我的代碼然後我會解釋。F#地帶麻煩地圖
let moveBoids boids =
boids |> List.map (fun(boid) ->
let others = List.filter (fun(b) -> b.Id <> boid.Id) boids
let positions = others |> List.map(fun(b2) -> b2.Position)
let velocities = others |> List.map(fun(b3) -> b3.Velocity)
let c = centerWithFlock (boid, positions)
let d = distanceFromFlock (boid, positions)
let v = matchVelocityWithFlock (boid, velocities)
let v2 = List.fold_right (addVector) [c; d; v] {X=0.; Y=0.; Z=0.}
let p = addVector boid.Position v2
{boid with Position=p; Velocity=v2})
我試圖將我的boid列表映射到一個新的boid列表。聽起來很容易,除非我非常肯定,如果我運行這個,每個boid只會根據原始列表更改,而不是每個boid更新自身的列表。我該怎麼用地圖樣式調用來做到這一點?我是否應該使用地圖樣式調用?我知道我的功能在我的boids列表中關閉,那麼如何將更新的列表傳遞給下一個電話?
單詞。
正確表達plz向德codez kthx – JoelFan 2010-02-15 22:00:16