function euclidean(a, b):

   return sqrt(sum((a[i] - b[i]) ** 2 for i in range(length(a))))

 function manhattan(a, b):
   return sum(abs(a[i] - b[i]) for i in range(length(a)))

 function cosine_distance(a, b):

   return 1 - dot(a, b) / (magnitude(a) * magnitude(b))
 # the metric determines what "nearest" means
