大家好,
目前正在尝试完成我正在做的一些作业,并且遇到了一个问题,即我尝试在接受多个输入的函数中应用 map 。
所以在我使用 processList f (x:xs) = map AcceleratorList f xs x xs 的情况下
processList 被赋予一个浮点值 (f) 和一个列表,它将排序到另一个列表中
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个小时了。我知道这非常很简单。
最佳答案
首先,您可能想在此处使用一些括号:
map accelerateList f xs x xs
函数 map
仅接受两个参数(而不是五个),因此您应该执行如下操作:
map (accelerateList f xs x) xs
但另一方面,这不符合您的函数签名。问题可能是您没有以足够好的方式构建解决方案。可能是一个单独的问题,但解释一下您想要通过加速功能完成什么(或者哪一个是“顶级”功能)肯定会有所帮助。
关于list - 使用 Map 应用具有多个输入的函数? ( haskell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843150/