2

伙计们,

目前正在尝试完成我正在处理的一些家庭作业,并且遇到了一个问题,即我试图将 map 应用于接受多个输入的函数。

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

processList 被赋予一个浮点值 (f) 和一个 List,它排序到另一个 List

Accelerate List 接受一个浮点值 (f) 一个 List 和一个 List Object,通过它返回另一个 List Object

我知道我的 Accelerate 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个小时了。我知道这简单。

4

1 回答 1

5

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

map accelerateList f xs x xs

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

map (accelerateList f xs x) xs

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

于 2010-05-16T09:29:37.987 回答