¿Hay alguna manera de usar el "mapa" de Haskell o algo similar con múltiples argumentos?Mapa aplicado a múltiples argumentos en Haskell
es decir, para encontrar la distancia entre un punto dado (que se define como una tupla) y una lista de otros puntos:
map distance (-3,-3) buildings
Claramente, que no funciona, ya que intenta mapear "distancia" a (-3, -3), donde la distancia espera dos tuplas:
let distance pointA pointB = sqrt ((frst pointB - frst pointA) * (frst pointB - frst pointA) + (scnd pointB - scnd pointA) * (scnd pointB - scnd pointA))
distancia toma dos puntos como argumentos: uno es (-3, -3) en este ejemplo, y uno se selecciona del edificios lista" ".
(-3, -3) es solo un ejemplo. Esto tendrá que ser una variable; no se puede codificar en la función.
Tal vez esto hará un poco más de sentido:
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.
distancia toma dos puntos como argumentos: uno es (-3, -3) en este ejemplo, y uno se selecciona de la lista " edificios ". (-3, -3) es solo un ejemplo. Esto tendrá que ser una variable; no se puede codificar en la función. –
obviamente "edificios de mapa (primer punto de distancia)" funcionarían, ¿no? O para decirlo sin rodeos: "frombuilding point buildings = edificios de mapa (punto de distancia)" – ondra
Por supuesto que puede reemplazar (-3, -3) con una variable. – helium