List 使用Map应用具有多个输入的函数?(哈斯克尔)

List 使用Map应用具有多个输入的函数?(哈斯克尔),list,haskell,map,ghc,List,Haskell,Map,Ghc,G'day伙计们 我正在努力完成我正在做的一些家庭作业,但遇到了一个问题,我试图在一个接受多个输入的函数中应用map 因此,在我使用processList f(x:xs)=MapAccelerateList f xs x xs的情况下 processList被赋予一个浮点值(f)和一个列表,并将其排序到另一个列表中 加速列表接受一个浮点值(f)一个列表和一个列表对象,通过它返回另一个列表对象 我知道我的加速列表代码是正确的,但我一辈子都无法使用此代码的语法: processList :: Flo

G'day伙计们

我正在努力完成我正在做的一些家庭作业,但遇到了一个问题,我试图在一个接受多个输入的函数中应用map

因此,在我使用processList f(x:xs)=MapAccelerateList f xs x xs的情况下

processList被赋予一个浮点值(f)和一个列表,并将其排序到另一个列表中

加速列表接受一个浮点值(f)一个列表和一个列表对象,通过它返回另一个列表对象

我知道我的加速列表代码是正确的,但我一辈子都无法使用此代码的语法:

processList :: Float -> [Object] -> [Object]
accelerate f [] = []
accelerate f [x] = [(accelerateForce f x x)]
accelerate f (x:xs) = map accelerateList f xs x xs

有什么想法吗?我已经挠了大约3个小时了。我知道这很简单。

首先你们可能想在这里使用一些括号:

map accelerateList f xs x xs
函数
map
只接受两个参数(不是五个),因此您应该执行如下操作,例如:

map (accelerateList f xs x) xs

但另一方面,这与函数签名不符。问题可能是您没有以足够好的方式构建解决方案。这可能是一个单独的问题,但是解释一下加速功能(或者哪一个是“顶级”功能)想要实现什么肯定会有帮助。

我绝对认为这是一个结构错误,谢谢。我试图映射一个函数,该函数比较一个列表中的两个元素,跨越整个对象列表。因此,对于每个对象,我必须将其与列表中的其他对象进行比较,以计算其运动。经过一些调试,我实际上使map正常工作,并且我测试过的函数也正常工作:accelerate f(x:xs)=map(accelerateList f xs)xs工作得非常好。谢谢你们的帮助!