使用Map应用具有多个输入的函数? (Haskell的)

时间:2010-05-16 09:11:41

标签: list haskell map ghc

G'day伙计们,

目前正在努力完成我正在做的一些功课,并且遇到一个问题,即我试图在接受多个输入的函数中应用地图。

所以在我使用processList的情况下f(x:xs)= map acceleList f xs x xs

processList被赋予一个浮点值(f)和一个List,它将它分类到另一个List

Accelerate List采用浮动值(f)List和List对象,通过它返回另一个List对象

我知道我的加速列表代码是正确的,但我不能为我的生活获得此代码的语法工作:

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

有什么想法吗?我现在已经摸不着头脑约3个小时了。我知道这是真的简单。

1 个答案:

答案 0 :(得分:5)

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

map accelerateList f xs x xs

函数map只取两个参数(不是五个),所以你应该做这样的事情,例如:

map (accelerateList f xs x) xs

但另一方面,这不适合您的功能签名。问题可能是您没有以足够好的方式构建解决方案。可能是一个单独的问题,但解释你试图通过加速函数(或者哪个是“顶级”函数)所要完成的事情肯定会有所帮助。