Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
no subject
Даже перл в какой то мере функциональный язык ;)
no subject
no subject
no subject
no subject
no subject
вообще же большинство известных мне ¨серьёзных¨ программистов зачем-то считают нужным бравировать своим антиинтеллектуализмом (в том что касается собственно профессиональной деятельности), даже если на самом деле являются людьми вполне вдумчивыми.
и это не может не огорчать, да.
no subject
этот
no subject
no subject
no subject
no subject
no subject
либо разводишь меня, болезного, на флейм. :)
no subject
А добрый флейм тоже неплох бывает ;)
no subject
такова природа популярных заблуждений — хрен убьёшь...
no subject
no subject
Главное в Лиспе не функции, а макросы. А скобочки (точнее, представление программы в виде S-выражений) — это единственный способ делать нормальные макросы.
Естественно, речь идёт не о тех макросах, которые в C/C++. В лиспе макрос — это функция, которая на входе принимает одно S-выражение, а на выходе даёт другое. Т.е. все вычислимые функции доступны, а не просто подстановки в строках, как в C.
Другое дело, что ФП более удобно для написания таких вот функций, преобразующих одно выражение в другое :) Однако в Common Lisp есть и императивный ООП, и многое другое.
И ещё, надо заметить, что тот лисп, который изобрёл МакКарти, и тот, который существует сейчас (Common Lisp, Scheme) — это две большие разницы :) Я сейчас писал про современный.
no subject
А чем, собственно, макрос отличается от фукнции, кроме имени, я не совсем понял. Я, опять же, знаю, что в лиспе всё - список, и что функция (которая, в свою очередь, тоже есть список) есть операция над списками. Мне просто кажется не всегда удобным мыслить именно в этих терминах.
no subject
2. Не всё — список. Есть ещё массивы, структуры, хеш-таблицы, объекты. Есть ещё целые произвольной точности и комплексные числа. У вас устаревшие сведения :)
3. Обычные функции работают во время работы, а макросы — во время компиляции (поэтому тут и уместна приставка мета-). Конечно, макросы могут вызывать другие функции (в этом главное отличие от большинства других макросистем).
Простой пример: для того, чтобы включить в программу на C парсер, нужно вызвать отдельную утилиту, которая описание грамматики сконвертирует в код на C. А в Лиспе для этого нужно лишь написать соотв. макрос. Другой пример — автоматическое выведение типов а-la ML.
no subject
no subject
2) Функциональные языки - наиболее человечные из всех - потому как допускают наибольшую степень абстракции. Человек может писать то, что думает, не заморачиваясь над всякими отвратительными техническими деталями.
Однако, исходя из п.1. могу сделать вывод, что гражданин stas просто не знает, что такое функциональные языки. Он, похоже, совсем ни разу не программист.
no subject
Сюда, быстро: http://www.paulgraham.com/
no subject
> А чем, собственно, макрос отличается от фукнции, кроме имени, я не совсем понял.
Может, моя статейка поможет разобраться:
http://arxiv.org/abs/cs.PL/0409016
> Мне просто кажется не всегда удобным мыслить именно в этих терминах.
Лисп позволяет мыслить в любых терминах, на любом уровне абстракции. Как и любой другой метаязык.
no subject
А не получится на Прологе писать императивно - её, императивности, там просто нет, как нет родной реализации, ну скажем, regexp engine на Прологе - в виде иллюстрации факта неимперативности. Bindings к Сишным реализациям - есть, своей - нет. Пролог вообще специфичный язык, предназначенный решать эффективно одну-единственную задачу - перебор множества решений.
ага, а вот и флейм!
это неверно.
главной бядой CL являются сектанты вроде фанатов ¨языка¨ Scheme, которые на голубом глазу сообщают лисподевственным людям херню вроде процитированного выше отрывка.
Re: ага, а вот и флейм!
P.S. Вообще-то я предпочитаю CL Схеме, за инкрементальную компиляцию. За неё можно простить даже раздельные пространства имён для функций и всего остального...