Это звучит как домашнее задание, поскольку вы говорите, что ограничены определенными функциями в своем решении.Поэтому я постараюсь дать только некоторые предложения, а не ответ.
Вы хотите использовать одинаковый допуск для всех значений в вашем списке.Представьте, есть ли способ объединить допуск с вашей функцией sqrt для создания новой функции, которая принимает только один параметр.У вас есть что-то типа float -> float -> float
, и вы как-то хотите использовать только первый float.Это вернет вам функцию типа float -> float
.(Как отметил Уэс, это работает, потому что ваша функция sqrt определена в форме Curried.)
Все, что я могу сказать, - это то, что языки FP, такие как OCaml (и Haskell), исключительно хороши в этом.На самом деле, это трудно , а не делать это, пока вы помните о приоритетах различных вещей.(То есть подумайте о скобках.)