Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
no subject
3. Тут я не совсем понял - что значит "работают во время компиляции"? Если я на Лиспе напишу программу, которая решает квадратное уравнение - то она мне его решит при компиляции, не зная входных параметров? Нет. Или вы имеете в виду, что константные выражения в Лиспе вычисляются при компиляции? Прекрасно, ну так не только там, но не все же выражения - константные.
Простой пример: для того, чтобы включить в программу на C парсер, нужно вызвать отдельную утилиту, которая описание грамматики сконвертирует в код на C. А в Лиспе для этого нужно лишь написать соотв. макрос.
Пример непонятен. Это значит, всего лишь, что в C компилятор или там yacc не входит в RTL, а в Лиспе - входит. Ну, отлично. Уверен, что в RTL в C есть вещи, который в RTL Лиспа нет. Однако что это должно продемонстрировать мне, вот чего я не пойму - что RTL у Лиспа лучше? Ну, хорошо, лучше.
no subject
Не константные. Любые. Во время компиляции доступен ВЕСЬ язык. Которым можно компилятор расширять как угодно.
no subject
no subject
Всё же, рекомендую статью прочитать.
no subject
Макросы принимают на входе данные, но генерируют код. Например, данные — грамматика, а код — парсер.
А парсер не входит в RTL Лиспа. Я не понял последний абзац. RTL вообще не причём :)
Смысл в том, что можно расширять компилятор Лиспа. Например, добавить парсер. И это ещё не самое впечатляющее.