Подумываю изучить Лисп. Возник вопрос про функциональные возможности этого языка, есть ли в Лиспе:
1. функции высших порядков (функции, которые возвращают как результат, и принимают в качестве аргумента другие функции, например map foldl и тд)
2. карринг (преобразование функции к функции с меньшем числом аргументов)
3. ленивые вычисления (когда вычисления производятся только тогда, когда потребуется их результат, что позволяет делать всякие фокусы, например бесконечные списки, или разом считать в оперативку файл размером пару десятков гигов)?