Я думаю, что вы используете map2
неправильно - функция map2
архивирует два массива, а затем применяет данную функцию к сжатому массиву.
Исходя из вашего вопроса, я предполагаю, что вына самом деле хочу сделать что-то еще.Для каждого ввода вы хотите перебрать все процентили и найти первый процентиль так, чтобы значение было больше (или меньше?), Чем процентиль.Для этого вам нужно заменить map2
на что-то вроде этого:
let tmpRplcd:string[] =
tmp
|> Array.map (fun y ->
prcntls |> Array.tryPick (fun x ->
if x <= y then Some(lkpTbl.[x]) else None))
|> Array.map (fun v -> defaultArg v "")
У меня нет подходящей версии, чтобы попробовать это, но я думаю, что это должно делать то, что вам нужно (япросто не уверен, если вам нужно x <= y
или наоборот!)