我打算编写 am map 函数,它本质上接受一个变量和一个列表并返回一个列表。
我尝试使用标准地图,但从我所看到的情况来看,它是"地图函数列表"格式,而在这里我试图传入另一个参数,这是另一点。
data Point = {xCoord :: Int,
yCoord :: Int}
movePoint :: Point -> Point -> Point
movePoint (Point x y) (Point xMove yMove)
= Point (x + xMove) (y + yMove)
// Add a "vector" to a list of points
movePoints :: [Point] -> Point -> [Point]
movePoints = error "Not yet"
例如,如果我有一个向量,例如 (2,2(,并且我有一个点列表,例如 [(-2,1(、(0,0(、(5,4( 等]我想使用 map 将 (2,2( 添加到列表中的所有点并返回点列表,我不知道该怎么做。当涉及到Haskell时,我是新手,所以任何提示都会很棒。
部分应用 movePoint
函数(即,使用比它需要的更少的参数调用它(,如下所示:
movePoints pts vec = map (movePoint vec) pts
这样做会创建一个只需要一个参数的新函数,即您第一次未提供的参数。这被称为咖喱。