Следующая функция принимает список, кортеж (a, b), где 'a' - это кортеж с плавающей точкой и запрос для проверки.
checkDist - это функция, которая принимает два кортежа с плавающей точкой и возвращает расстояние между всеми точками.
Теперь моя проблема заключается в том, что я столкнулся с ошибкой несоответствия типов и не могу понять, почему.Похоже, что вместо 'float * float * выводится' a 'как один-единственный float.
let intoTp lst (a, b) qry =
let rec intoTpLoop lst prevMax =
match lst with
| [] -> []
| (feat, value) :: t ->
let curr = checkDist feat qry // current max
let prev = checkDist prevMax qry // prev max
// Check to replace top
if prev < curr then
let nextMax = (feat, value)
prevMax :: intoTpLoop t nextMax
else
(feat, value) :: intoTpLoop t prevMax
intoTpLoop lst (a, b)
Спасибо,