有没有办法使用Haskell的“地图”或类似的多个参数?在Haskell中应用于多个参数的地图
即发现和其他点的列表给定的点(定义为一个元组)之间的距离:
map distance (-3,-3) buildings
显然,这是不行的,因为它试图“距离”映射到(-3,-3),其中距离预计两个元组:
let distance pointA pointB = sqrt ((frst pointB - frst pointA) * (frst pointB - frst pointA) + (scnd pointB - scnd pointA) * (scnd pointB - scnd pointA))
距离取两个点作为参数:一个是(-3,-3)在这个例子中,和一个从该列表中“建筑选择”。 (-3,-3)只是一个例子。这必须是一个变量;它不能被硬编码到函数中。
也许这将让更多一点意义:
buildings = [(3,-2),(2,1),(5,3),(4,3),(4,-1)]
firstDiff pointA pointB = subtract (fst pointA) (fst pointB)
secondDiff pointA pointB = subtract (snd pointA) (snd pointB)
distance pointA pointB = sqrt ((firstDiff pointA pointB) * (firstDiff pointA pointB) + (secondDiff pointA pointB) * (secondDiff pointA pointB))
--- What I need to happen here is a list "score" to be created by taking all distances from a point in a list lPoints to a point in list buildings.
距离取两个点作为参数:一个是(-3,-3)在这个例子中,和一个从该列表“中选择建筑”。 012- (-3,-3)只是一个例子。这必须是一个变量;它不能被硬编码到函数中。 – 2010-03-01 22:10:11
显然“地图(距离第一点)建筑物”将工作,不是吗?或者直截了当地说:“从建筑物建筑物=地图(距离点)建筑物” – ondra 2010-03-01 22:21:29
当然,你可以用一个变量代替(-3,-3)。 – helium 2010-03-01 22:25:33