Лисп из Питона

Считается, что Питон — не очень пластичный язык. В нем нет макросов ни в одном из значений слова «макрос», нет красивых строковых миксинов, как в D, нельзя вводить свои операторы. Расширять язык можно только с помощью новых функций и классов. Фактически, программист на Питоне привязан к определенному синтаксису и, как следствие, определенному стилю решения проблем. «One way to do it». Таким образом, Питон располагает к написанию простого читаемого кода, что, естественно, очень даже хорошо. Но скучно. К счастью, проявив некоторую фантазию, питоновский синтаксис тоже можно поломать. Например, можно сделать из Питона Лисп. Следующий пример — валидный питоновский код, который запускается интерпретатором без всякой дополнительной обработки и предсказуемо выводит в консоль »[24, 42]».from fakelisp import *

# And now you can write Lisp (BEGIN (SET (F) (LAMBDA (X) (IF (EQ (X) (1)) (1) (MUL (X) (F (SUB (X) (1)))))))

(SET (X) (QUOTE (F (4)) (42))))

# Back to Python any time print «x:», X Читать дальше →

© Habrahabr.ru