March 2026

S M T W T F S
12 34567
891011121314
151617 18192021
22232425262728
293031    

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Thursday, May 5th, 2005 12:10 am
Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
Friday, May 6th, 2005 05:18 pm (UTC)
> Или вы имеете в виду, что константные выражения в Лиспе вычисляются при компиляции?

Не константные. Любые. Во время компиляции доступен ВЕСЬ язык. Которым можно компилятор расширять как угодно.
Friday, May 6th, 2005 10:54 pm (UTC)
Ну почему же неизвестны? Очень даже известны. Мы можем во время компиляции производить любые операции над собственно кодом программы. Чем это код - не данные? При этом, в таких метаязыках, как Лисп и Схема, мы используем для этих преобразований тот же язык. В C++ - это свой, отдельный язык, чисто функциональный, кстати. В метаязыках с семантикой splice-ов, опять же, можно применять сам целевой язык, как пример - метапрепроцессор Jatha для языка Java, или Template Haskell.

Всё же, рекомендую статью прочитать.
Wednesday, May 11th, 2005 12:01 pm (UTC)
3. Во время компиляции работают макросы. А если входные параметры нужны в рантайме, то это нужно делать функцией.

Макросы принимают на входе данные, но генерируют код. Например, данные — грамматика, а код — парсер.

А парсер не входит в RTL Лиспа. Я не понял последний абзац. RTL вообще не причём :)

Смысл в том, что можно расширять компилятор Лиспа. Например, добавить парсер. И это ещё не самое впечатляющее.