F
Напишите функцию pairs, которая принимает на вход числовой интервал (массив из двух значений) и функцию predicate, утверждающую некоторое условие.
Функция pairs должна находить и возвращать все пары чисел из переданного интервала, которые удовлетворяют утверждению
То есть, следующий вызов
pairs([1, 4], (a, b) => a + b === 7)
должен вернуть двумерный массив
[[3, 4], [4, 3]]
Условие - запрещается сохранять промежуточные результаты вычислений
Это значит, что такой код
function foo() {
let result = [];
// code...
return // value
}
использовать запрещено (создана промежуточная переменная result)
Можно использовать параметры функций и замыкания
Сигнатуры
predicate :: (Number, Number) -> bool
pair :: ([Number], (Number, Number) -> bool) -> [[Number]]