Здравствуйте, VladD2, Вы писали:
VD>car/cdr/
Так уж исторически сложилось..
Ну ок. Ну сделали бы они head/tail было бы значительно лучче ?
Да и caddr кстати короче писать чем head(tail(tail ))
VD>cons
construst-new-list или что-то вроде конечно понятнее.
Но имхо это как разница между Pow и Power или Exp и Exponent
VD>/посфиксная запись/
VD>AST вместо синтаксиса...
Префиксная ? Ну да она специфична.
А в случае с XML это не напрягает ?
Я же уже неоднократно приводил пример
<add>
<x>
<y>
</add>
(add x y)
Есть
принципиальная разница в понимании этих кусков кода ?
Тем более что при программировании нетривиальных макросов придется работать с AST.
Для Немерле AST это отдельное измерение. А для Scheme это тот же язык.
Пример с синтаксическим дифференцированием в SICP меня просто поразил своей простотой и красотой. Без префиксной нотации оно было бы больше и не настолько элегантно.
Тем не менее я считаю что на практике лучше применять что-то другое. Scheme он отлично подходит для обучения ФП.
А по поводу Хаскеля. Он хорош для обученя ФП в том смысле что он pure(ну или что-то типа того

) Человек который его начинает изучать не сможет реализовать программу в императивном стиле. Ему придется плеваться на то что все не так, как он привык, и он на своей шкуре почувствует где ФП дает какой-то плюс, а где удобне было бы попользоваться старым добрым императивом. Обучение ФП на основе Хаскела это что-то типа обучения плаванию путем выбрасывания на середине озера. Злобно но эффективно.
Альтернативой может быть изучение ФП на основе не pure языков типа OCaml или Nemerle. Но человек с опытом императивного программирования будет поначалу все время думать по императивному. Поэтому путь до просветления и понимания обласит применимости ФП фишек в таком случае будет долше. ИМХО естественно.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери