>> А для простых задач типа бизнес логики и текстовых фильтров >> функциональщина нахрен не сдалась. >> > Мне всегда казалось, что в приличном обществе принято подобные > утверждения подкреплять _конкретными_ примерами, а не отправлять за > ними "куда-то туда". http://www.iro.umontreal.ca/~lapalme/Algorithms-functional.html О! Целая книжка! Не знаю, что там, первая ссылка в гугле,думаю, что-нибудь вроде алгоритма Боера-Мура на Хаскеле или Ахо-Карасика в чисто функциональном виде.
google://functional algorithms для полной радости. http://www.techfak.uni-bielefeld.de/~kurtz/publications.html Там можно найти диссертацию. Относительно свежая, 95-ого года. Его прочие работы там же. Остальное искать самостоятельно на siteseer-е. > И опять-таки, расскажи это в ru.lisp; особенно > практикующим программистам, которые на этом самом лиспе решают > реальные задачи. Товарищам из ru.lisp нечего мне сказать по теме алгоритмов. Что касается чистоты функционального подхода в лиспе - тут все предельно просто. Открываем исходники Emacs-а и считаем количество progn, явных и неявных, а также количество let и убеждаемся в том, что функциональщина в чистов виде - это пшык: красивенько реализовали пару-тройку задач на деревьях с помощью рекурсии (вычисление выражения, или производную взять - типичные примеры), Quick Sort на Haskel-е и все на этом. Все остальное о лиспе - не имеет собственно к функциональной парадигме ни малейшего отношения. Там больше о "динамичности" языка. Это, знаете ли, Algol-60, Lua, Java Script, Ruby, Python, Pike, Smalltalk, Objective C и десятки прочих. Этим сейчас НИКОГО не удивишь. Про нестрогую типизацию типизацию - это тоже не новость. Про то, насколько она зулез - опять же к Зефирову. Я считаю, что она хороша только для микроскопических задач. В этом отношении, кстати, весьма любопытен Pike. Там как бы и нашим и вашим. Есть int, string, map, set, но есть такой тип mixed - нетипизированный. Но еще не все. Там можно определить переменную даже так int|string result; со всеми положенными проверками compile time и runtime предикатами само собой. Что касается изменчивости синтаксиса и семантики, смотри Forth, TCL, Lua. Ни один из них не функциональный. Есть, конечно, красивые примеры, например ленивые списки, очень красиво, и очень здорово, но я что-то не видел из аггитирующих за лисп фанатов Lazy Lisp. В основном Common Lisp пропогандируют. Ленивые списки на CL/Scheme - это гламурненко, но это можно сделать на любом динамическом императивном ЯП, на ЛЮБОМ. Лисп и Algol60 сделали свое дело 49(!!!) лет назад. >> Но _читать_ про функциональный подход, конечно же, нужно. Это >> структурирует пустоту в голове. В некоторых случаях воспитывает чувство >> красивого в математике и программировании. То есть, это имеет смысл по >> крайней мере для педагогических воспитательных целей. > Так изначально именно об этом и шла речь. Изначально речь шла об аргументах типа "испорченные императивным подходом", "начинать образование нужно обязательно с функциональных языков" и прочем. Так вот Бага Яга против. Начинать учиться нужно с книг, а не с языков программирования. И тогда и функциональный и императивный подходы займут положенные им места в голове, прекрасно дополняя и облагораживая друг друга. Без всяких перегибов и дешевой пропаганды. -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

