Re[3]: Какой функциональный язык стоит изучать?
От: Mirrorer  
Дата: 03.03.07 08:08
Оценка: +3
Здравствуйте, 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. Но человек с опытом императивного программирования будет поначалу все время думать по императивному. Поэтому путь до просветления и понимания обласит применимости ФП фишек в таком случае будет долше. ИМХО естественно.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.