我有2个功能

accelerate :: Float -> [Particle] -> [Particle]
accelerateParticle :: Float -> Particle -> [Particle] -> Particle


我想实现的是为[Particle]中的每个元素应用accelerateParticle函数。我遇到的麻烦是accelerateParticle函数依赖于使用最初由Accelerator给出的原始[particle]。我在想像这样使用地图

map (\particle -> accelerateParticle Float particle [Particle]) [Particle]

但我不太确定这是正确的格式。

最佳答案

您可能正在寻找:

accelerate :: Float -> [Particle] -> [Particle]
accelerate x ps = map (\p -> accelerateParticle x p ps) ps


请注意,所有粒子ps的列表既可以用于map,也可以用作accelerateParticle的参数。

10-06 02:28