Какое подмножество аспектов функционального программирования и Lisp-подобных функций предоставляет JavaScript?

Прямо к делу, в https://stackoverflow.com/questions/4696618/is -haskell-a-lisp? answertab = messages # tab-top , есть комментарий Кевина Канту, в котором говорится:

Да, если выйти за рамки синтаксиса, JavaScript, вероятно, больше похож на Lisp чем Haskell. (Первоначально задуманная как реализация схемы ...)

Кроме того, в Lambda the Ultimate: компилятор Lisp to JavaScript в 100 строках они говорят:

Это сразу довольно ясно, что JS и Lisp имеют тесные связи на уровне семантики [...]

Я знаком с Lisp и функциональным программированием, но не с JavaScript. Таким образом, эти предложения заставили задуматься о том, насколько мощным является JavaScript. До сих пор я читал, что он предоставляет лямбда-выражения и замыкания. Какие еще концепции функционального программирования и Lisp-подобные функции он предоставляет? Предоставляет ли он, например, рекурсию хвостового вызова, или макросы, или возможность манипулировать кодом как данными (например, Lisp)?

9
задан Community 23 May 2017 в 10:24
поделиться