В функциональных языках (равно как и вообще в языках программирования и математике) функции могут быть переданы другим функциям в качестве аргумента или возвращены в качестве результата. Функции, принимающие функциональные аргументы, называются функциями высших порядков или функционалами. Самый, пожалуй, известный функционал, это функция map. Эта функция применяет некоторую функцию ко всем элементам списка, формируя из результатов заданной функции другой список. Например, определив функцию возведения целого числа в квадрат как:
square (N) = N * N
Можно воспользоваться функцией map для возведения в квадрат всех элементов некоторого списка:
squareList = map (square, [1, 2, 3, 4])
Результатом выполнения этой инструкции будет список [1, 4, 9, 16].