• это функции, которые работают с другими функциями (принимают или возвращают)
  • map, filter как раз принимают на вход функции
  • debounce -- пример такой функции
function debounce(fn, delay) {
    let timer;
    return function (...args) {
        clearTimeout(timer);
        timer = setTimeout(
            () => { fn(...args); },
            delay
        )
    }
}

function handleSearch(query) {
    // Логика обработки поискового запроса
    console.log('Searching for:', query)
}

const debouncedSearch = debounce(handleSearch, 300)

debouncedSearch('JavaScript') // Поиск будет выполнен через 300 мс