Thursday, May 5th, 2005 12:10 am
Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
Page 1 of 5 << [1] [2] [3] [4] [5] >>
Wednesday, May 4th, 2005 09:25 pm (UTC)
Ну есть же окамль и хаскель ;)
Даже перл в какой то мере функциональный язык ;)
Wednesday, May 4th, 2005 09:43 pm (UTC)
Ворлоны, очевидно, программируют напрямую в бинарных кодах.
Thursday, May 5th, 2005 05:35 am (UTC)
А может ты не серьёзен? А? :)
Thursday, May 5th, 2005 07:55 am (UTC)
ну, для начала надо понимать что такое Лисп, а также что такое функциональный язык.
вообще же большинство известных мне ¨серьёзных¨ программистов зачем-то считают нужным бравировать своим антиинтеллектуализмом (в том что касается собственно профессиональной деятельности), даже если на самом деле являются людьми вполне вдумчивыми.
и это не может не огорчать, да.
Thursday, May 5th, 2005 08:14 am (UTC)
кстати, заглянул в собственно линк.
этот [livejournal.com profile] ailev обо всём такую херню несёт, или только о том в чём я разбираюсь?
Thursday, May 5th, 2005 08:27 am (UTC)
Отсюда вывод - чтобы быть програмистом, надо быть не серьёзным и тебе будут платить много денег...
Thursday, May 5th, 2005 08:42 am (UTC)
ну, скажем так: если ты считаешь Лисп функциональным языком, то: либо ты так испугался Лиспа, что не успел узнал о нём ничего существенного; либо ты не знаешь, что такое функциональное программырование; либо и то и другое.
либо разводишь меня, болезного, на флейм. :)
Thursday, May 5th, 2005 09:17 am (UTC)
> Лисп не только я считаю функциональным языком

такова природа популярных заблуждений — хрен убьёшь...
Thursday, May 5th, 2005 10:28 am (UTC)
Не-а, органические Лисп-машины - это у теней.
Friday, May 6th, 2005 08:45 am (UTC)
Лисп — это язык метапрограммирования. Это я вам как лиспник говорю.

Главное в Лиспе не функции, а макросы. А скобочки (точнее, представление программы в виде S-выражений) — это единственный способ делать нормальные макросы.

Естественно, речь идёт не о тех макросах, которые в C/C++. В лиспе макрос — это функция, которая на входе принимает одно S-выражение, а на выходе даёт другое. Т.е. все вычислимые функции доступны, а не просто подстановки в строках, как в C.

Другое дело, что ФП более удобно для написания таких вот функций, преобразующих одно выражение в другое :) Однако в Common Lisp есть и императивный ООП, и многое другое.

И ещё, надо заметить, что тот лисп, который изобрёл МакКарти, и тот, который существует сейчас (Common Lisp, Scheme) — это две большие разницы :) Я сейчас писал про современный.
Friday, May 6th, 2005 09:58 am (UTC)
1. Нет, не является :)
2. Не всё — список. Есть ещё массивы, структуры, хеш-таблицы, объекты. Есть ещё целые произвольной точности и комплексные числа. У вас устаревшие сведения :)
3. Обычные функции работают во время работы, а макросы — во время компиляции (поэтому тут и уместна приставка мета-). Конечно, макросы могут вызывать другие функции (в этом главное отличие от большинства других макросистем).

Простой пример: для того, чтобы включить в программу на C парсер, нужно вызвать отдельную утилиту, которая описание грамматики сконвертирует в код на C. А в Лиспе для этого нужно лишь написать соотв. макрос. Другой пример — автоматическое выведение типов а-la ML.
Friday, May 6th, 2005 09:59 am (UTC)
2. Есть ещё функции :)
Friday, May 6th, 2005 10:26 am (UTC)
1) Lisp - не функциональный язык ни разу. Это - мультипарадигмный метаязык, который любой человек легко может заточить под любую свою человечность, если он настолько слаб, что человечность в нём конфликтует с рациональностью.

2) Функциональные языки - наиболее человечные из всех - потому как допускают наибольшую степень абстракции. Человек может писать то, что думает, не заморачиваясь над всякими отвратительными техническими деталями.

Однако, исходя из п.1. могу сделать вывод, что гражданин stas просто не знает, что такое функциональные языки. Он, похоже, совсем ни разу не программист.
Friday, May 6th, 2005 10:28 am (UTC)
Оно и видно - не читал, но осуждаешь.

Сюда, быстро: http://www.paulgraham.com/

Friday, May 6th, 2005 10:30 am (UTC)
Как раз это - большая бяда CL, что не является - он не гарантирует корректности хвостовой рекурсии, в отличии от той же Схемы, и, соответственно, на нём не просто можно, но и неизбежно нужно писать императивно.

> А чем, собственно, макрос отличается от фукнции, кроме имени, я не совсем понял.

Может, моя статейка поможет разобраться:

http://arxiv.org/abs/cs.PL/0409016

> Мне просто кажется не всегда удобным мыслить именно в этих терминах.

Лисп позволяет мыслить в любых терминах, на любом уровне абстракции. Как и любой другой метаязык.
Friday, May 6th, 2005 10:55 am (UTC)
Вопрос, не является ли это такой же ересью по отношению к задумке языка, как писать императивно, например, на Прологе?

А не получится на Прологе писать императивно - её, императивности, там просто нет, как нет родной реализации, ну скажем, regexp engine на Прологе - в виде иллюстрации факта неимперативности. Bindings к Сишным реализациям - есть, своей - нет. Пролог вообще специфичный язык, предназначенный решать эффективно одну-единственную задачу - перебор множества решений.
Friday, May 6th, 2005 12:44 pm (UTC)
> Как раз это - большая бяда CL, что не является - он не гарантирует корректности хвостовой рекурсии, в отличии от той же Схемы, и, соответственно, на нём не просто можно, но и неизбежно нужно писать императивно.

это неверно.
главной бядой CL являются сектанты вроде фанатов ¨языка¨ Scheme, которые на голубом глазу сообщают лисподевственным людям херню вроде процитированного выше отрывка.
Friday, May 6th, 2005 01:04 pm (UTC)
Херню, гойворишь? Показать реализации CL, в которых *НЕТ* корректной хвостовой рекурсии? Или сам найдёшь и извинишься?

P.S. Вообще-то я предпочитаю CL Схеме, за инкрементальную компиляцию. За неё можно простить даже раздельные пространства имён для функций и всего остального...
Page 1 of 5 << [1] [2] [3] [4] [5] >>