Использует ли функциональное программирование переменные?
Ну, по крайней мере, вы можете связать имена со значениями. Можно назвать это имя переменной, даже если она не переменная. Но в математике, когда мы видим:
x + 3 = 5
мы называем x переменным, хотя это просто другое имя 2.
Otoh, имена, которые связаны с аргументами функций, действительно являются переменными, если только при разных вызовах функции.
Если нет, как функциональные программы занимают память?
Будут элементы языка для конструирования непримитивных значений, таких как списки, кортежи и т. Д. Такой конструктор данных создает новые значения из старых (где-то в памяти, но эти детали не имеют значения для FP).