20 октября 2018 года исполнилось 60 лет с момента появления языка LISP (https://ru.wikipedia.org/wiki/%D0%9B%D0%... и концепции функционального программирования, которые были созданы Джоном Маккарти для проведения работ в области искусственного интеллекта. Язык LISP подарил миру программирования множество новых возможностей и нестандартных решений, которые позднее нашли отражение во многих современных языках программирования, таких как Logo, Perl, Python, Smalltalk и Ruby.
URL:
Новость: https://www.opennet.dev/opennews/art.shtml?num=49470
Все собираемся сегодня в 18:00 в кафе "Бегемот", будем пить и монадами меряться
В лиспе нет монад (не используют)
>> будем пить и монадами меряться
> В лиспе нет монад (не используют)Это смотря сколько выпить.
*scnr*
Культуры такой нет, да, а вообще делаются банально макросами.
"Так, собрал свои монадки!"
> "Так, собрал свои монадки!"Это ещё что. Мы с женой давеча начали XMR майнить, так вчера вечером она мне выдаёт: "Дима, иди сюда, посмотри на наши монеры"! :)
Гонадами.
С меня тарелка борща
> будем пить
> монадами мерятьсяСлучайно не вы автор данного блога на Hakyll? http://p0n4ik.tk
https://youtu.be/5-OjTPj7K54
А вот и текст, в видео песня 1996 годаI was taught assembler
in my second year of school.
It's kinda like construction work —
with a toothpick for a tool.
So when I made my senior year,
I threw my code away,
And learned the way to program
that I still prefer today.
Now, some folks on the Internet
put their faith in C++.
They swear that it's so powerful,
it's what God used for us.
And maybe it lets mortals dredge
their objects from the C.
But I think that explains
why only God can make a tree.
For God wrote in Lisp code
When he filled the leaves with green.
The fractal flowers and recursive roots:
The most lovely hack I've seen.
And when I ponder snowflakes,
never finding two the same,
I know God likes a language
with its own four-letter name.
Now, I've used a SUN under Unix,
so I've seen what C can hold.
I've surfed for Perls, found what Fortran's for,
Got that Java stuff down cold.
Though the chance that I'd write COBOL code
is a SNOBOL's chance in Hell.
And I basically hate hieroglyphs,
so I won't use APL.
Now, God must know all these languages,
and a few I haven't named.
But the Lord made sure, when each sparrow falls,
that its flesh will be reclaimed.
And the Lord could not count grains of sand
with a 32-bit word.
Who knows where we would go to
if Lisp weren't what he preferred?
And God wrote in Lisp code
Every creature great and small.
Don't search the disk drive for man.c,
When the listing's on the wall.
And when I watch the lightning burn
Unbelievers to a crisp,
I know God had six days to work,
So he wrote it all in Lisp.
Yes, God had a deadline.
So he wrote it all in Lisp.
А напишите что-нибудь на лисипском.
(((((())))())))(((())))))(())))))(()))))
Эта программа называется "Syntax Error".Хелоу-ворлд для современной молодежи уже заоблачные высоты?
А ты не можешь в юмор, да?
Привыкай к опеннету, анон. Здесь таких фанатиков over9000.
квайн. www.rosettacode.org/wiki/Quine
((lambda (q) (quasiquote ((unquote q) (quote (unquote q))))) (quote (lambda (q) (quasiquote ((unquote q) (quote (unquote q)))))))
> (((((())))())))(((())))))(())))))(()))))Я доработал твою программу, анон:
((((((.))))(.))))((((.))))))((.))))))((.)))))Теперь всё отлично работает!
Я доработал твою программу :(.)(.)
Чувак, ты крут!Но я сегодня всю ночь не спал, сделал рефакторинг и всё переписал заново, новый релиз содержит ещё меньше кода и работает намного лучше:
(__!__)
(defun bubble-sort/naive (sequence)
(let ((end (length sequence)))
(labels ((compare-and-swap (index modified)
(if (= index (1- end))
(if modified (compare-and-swap 0 nil) (values))
(let ((index+1 (1+ index)))
(if (> (elt sequence index) (elt sequence index+1))
(let ((x (elt sequence index)))
(setf (elt sequence index) (elt sequence index+1)
(elt sequence index+1) x)
(compare-and-swap index+1 t))
(compare-and-swap index+1 modified))))))
(unless (< end 2)
(compare-and-swap 0 nil))
sequence)))
Что за вирус ты написал, анон? Твоя программа убивает Емакс!
Пожалуйста, хватит!
> А напишите что-нибудь на лисипском.
#lang web-server/insta
(define (start request)
(response/xexpr
'(html
(head (title "My Blog"))
(body (h1 "Under construction")))))
За возможности конечно спасибо, но само по себе это скобкопосмешище пусть отправляется в могилу, вместе с реинкарнацияси в виде guile и прочего крапа
https://developer.mozilla.org/en-US/docs/WebAssembly/Underst.... Похоже, скобкопосмешище переживёт JavaScript.
https://developer.mozilla.org/en-US/docs/WebAssembly/Underst...
webassembly wast
> За возможности конечно спасибо, но само по себе это скобкопосмешищеА предложите-ка другой синтаксис: более читаемый, но чтоб программа сразу же была и структурой данных.
Понимаю, что Вам не дано писать программы, которые пишут (и читают) программы, но всё-таки спрошу.
Можно и без скобок, см. SRFI 49.
М-выражения.Реализуй их лисперы в своё время, всё у языка могло бы сложиться иначе.
Ну не знаю. Посмотрел в Википедию, увидел такие примеры и S-выражения показались мне куда более легко читаемыми (как для человека, так и для машины):M: label[square;λ[[x];product[x;x]]]
S: (defun square (x) (* x x))M: lessthan[x;0] → negative[x]; T → x]
S: (cond ((< x 0) (- x)) (t x))
Потому что в википедии фигня написана.defun[square[x], product[x, x]]
cond[[lessthan[x, 0], negative[x]], [t, x]]
Можно пойти чуть дальше, например:
defun[square[x], x * x]
cond[[x < 0, -x], [t, x]]
И ещё дальше:
square[x] := x * x
И т. д.
При этом у каждого "засахаренного" выражения есть однозначное "низкоуровневое" представление в виде вложенных списков.
Wolfram Mathematica так делает, например.
>А предложите-ка другой синтаксис: более читаемый, но чтоб программа сразу же была и структурой данных.module.export = function() {
return { hello: "world" }
}sub hello {
my str = "hello";
return str
}первый синтаксис javascript, второй perl
в силу особенностей виртуальных машин и парсеров к ним они не представляются в виде ветвистой клюквы как в lisp процессоре (да в том множество допущений), но оба легко траслируются в lisp-дерево
если бы это комуто было надо.
"все в мире LISP, вначале был только LISP, и потом свет и тьма"
Хорошо. Первый пункт выполнен. Что насчёт второго?
Proc.new { 'Hello world' }Ruby обыкновенный..... Ничего кроме объектов....
> "все в мире LISP, вначале был только LISP, и потом свет и тьма"Да нет же, Бог изначально творил мир в виде идеальных структурах LISP. Просто он продолбал дедлайны и в день субботний по-быстренькому нахакал часть функционала на Perl-е. Отсюда и чудеса, а вы-то думали! :)
s/Perl/Brainfuck/
> часть функционала на Perl-е.вот не надо про perl.
хорошо что не javascript.
FORTH ? ;)
Проблема в том, что вы до сих пор редактируете код как плоскую последовательность строк, а такая модель текста не соответствует иерархической структуре программы практически на любом языке, но многие языки пытаются так или иначе к этому адаптироваться, и, видимо, только такие языки кажутся вам приемлемыми.А здесь другой подход: многие лисперы используют для работы с кодом структурный редактор (paredit), мы работаем непосредственно с деревом в терминах его поддеревьев, а не в терминах строк, и именно синтаксис Лиспа поддерживает структурное редактирование лучше всего, но в результате менее дружественен для использования с редактором плоского текста. Изменение подхода к редактированию меняет и восприятие: я не вижу невнятную кучу скобок (и тем более не пытаюсь их считать), я вижу дерево вложенных списков, и оно практически осязаемо — им можно манипулировать непосредственно как таковым, и оно явно и прозрачно, а не скрыто за кучей специальных синтаксических правил. Поднявшись на этот качественно более высокий уровень работы с кодом, я уже ни за что не захочу от него отказаться, а непостигшие пусть дальше продолжают изобретать себе новые и новые языки с "дружественным" синтаксисом.
А можно поинтересоваться плодами вашего "качественно более высокого уровня", кроме ЧСВ over9000?
> А можно поинтересоваться плодами вашего "качественно более высокого уровня", кроме ЧСВ
> over9000?вот вам киворды: racket clojure guile
дальше сами
В смысле вы хотите сказать что достопочтенно-пафосный аноним выше участвовал в создании этого? Ладно, допустим, хотя слабовато верится.Тогда другой вопрос - а что собственно такого офигенно полезного в этих "плодах"? А то писать язык для того что бы с его помощью создать другой язык, это знаете-ли сектантством попахивает.
Т.е. мне хотелось бы видеть результат более ощутимый. Ну типа какое-то полезное приложение которое или в массах используется, или наоборот - узкоспециализированное и незаменимое.
И главное, что бы то то что оно написано на этих ((((языках))))) было неоспоримым преимуществом, либо по скорости работы, либо по качеству кода, либо по сложности поддержки. Ну либо, хотя бы, по стоимости разработки.Есть чего?
> В смысле вы хотите сказать что достопочтенно-пафосный аноним выше участвовал в создании этого?Нет, не хочу. Пафос и ЧСВ в словах анонима выше Вы зря заподозрили. Он просто постарался объяснить разницу в подходе. Он говорит тривиальные, но правильные вещи.
> Тогда другой вопрос - а что собственно такого офигенно полезного в этих
> "плодах"? А то писать язык для того что бы с его
> помощью создать другой язык, это знаете-ли сектантством попахивает.Ответ на этот вопрос займёт слишком много времени. Может быть в другой раз.
> Т.е. мне хотелось бы видеть результат более ощутимый. Ну типа какое-то полезное
> приложение которое или в массах используется, или наоборот - узкоспециализированное и
> незаменимое.Ну если сходу... Широкоиспользуемое -- ViaWeb. Это веб сервис. Его вроде бы купили и, емнип, теперь это один из сервисов Yahoo. Из узкоспециализированных -- Solar Dozor. Это DLP система.
> И главное, что бы то то что оно написано на этих ((((языках)))))
> было неоспоримым преимуществом, либо по скорости работы, либо по качеству кода,
> либо по сложности поддержки. Ну либо, хотя бы, по стоимости разработки.Ну ViaWeb был весьма громкой success story среди лиспов. Dozor уже много лет лидер на рынке DLP-систем. Даже infowatch уткнул за пояс. Это аргумент?
> Ну если сходу... Широкоиспользуемое -- ViaWeb. Это веб сервис. Его вроде бы купили и, емнип, теперь это один из сервисов Yahoo. Из узкоспециализированных -- Solar Dozor. Это DLP система.
> ViaWeb был весьма громкой success story среди лиспов. Dozor уже много лет лидер на рынке DLP-систем. Даже infowatch уткнул за пояс.Это всё прекрасно конечно, но у меня вопрос был не в этом. Я конечно таких названия с роду не слыхал, но это ничего не значит. Как и то, что кто-то там где-то *единичный* лидер, не говорит о тех преимуществах которые я перечислял. Основной причиной может оказаться например то что он успел вовремя выйти на рынок и окупировать его, или же например поддерживается конторой с хорошими ресурсами которая может не особо-то прибыльные темы тащить. И т.п.
Хочется более объективных примеров вида: "при решении задачи X на языке Y нужно будет N часов разработки программистов стоимостью $Z в час, в то время как решая её же на языке W мы получим совсем другую сумму". То же касается и других перечисленных мною параметров.
Опять же, это не говорит о том что язык "ненужно", "ужасен", "его время ушло" и т.п. Дело может не в этом, может дело в том что язык *сейчас не нужен* рынку. И по каким-то критериям например опережает своё время и его технические возможности. Ну типа как Беббидж и Лавлейс со своей аналитической машиной и программированием, которые так и не заработали *тогда*, но концептуально были прорывом на сотню лет вперёд.
Т.е. во-первых я просто хочу для себя понять "а что в них такого объективно хорошего сейчас?". А во-вторых - толсто намекнуть что тем кто умеет на нём писать, совершенно нет повода делать растопырку пальцев как анончик выше.
>> Ну если сходу... Широкоиспользуемое -- ViaWeb. Это веб сервис. Его вроде бы купили и, емнип, теперь это один из сервисов Yahoo. Из узкоспециализированных -- Solar Dozor. Это DLP система.
>> ViaWeb был весьма громкой success story среди лиспов. Dozor уже много лет лидер на рынке DLP-систем. Даже infowatch уткнул за пояс.
> Это всё прекрасно конечно, но у меня вопрос был не в этом.
> Я конечно таких названия с роду не слыхал, но это ничего
> не значит. Как и то, что кто-то там где-то *единичный* лидер,
> не говорит о тех преимуществах которые я перечислял. Основной причиной может
> оказаться например то что он успел вовремя выйти на рынок и
> окупировать его, или же например поддерживается конторой с хорошими ресурсами которая
> может не особо-то прибыльные темы тащить. И т.п.Ну, о продуктах Jane Street Вы, скорее всего, тоже никогда не слышали, однако они используются повсеместно во всех крупных биржах мира. Но Ваши подозрения беспочвенны: оба проекты были созданы с нуля и поднялись в условиях жёсткой конкуренции.
> Хочется более объективных примеров вида: "при решении задачи X на языке Y
> нужно будет N часов разработки программистов стоимостью $Z в час, в
> то время как решая её же на языке W мы получим
> совсем другую сумму". То же касается и других перечисленных мною параметров.Ну ок. По проекту Viaweb статья Грекхема "Beating the averages", думаю, частично даст Вам ответы. Если после неё вопросы не отпадут, приходите и задавайте.
> Опять же, это не говорит о том что язык "ненужно", "ужасен", "его
> время ушло" и т.п. Дело может не в этом, может дело
> в том что язык *сейчас не нужен* рынку. И по каким-то
> критериям например опережает своё время и его технические возможности.Рынку в среднем не нужны вундервафли. Рынок в среднем запрашивает по большей мере заменяемость человека, что мало совместимо с Lisp/ML, в которые порог входа всё-таки весьма высок.
> Т.е. во-первых я просто хочу для себя понять "а что в них такого объективно хорошего сейчас?".
Что хорошего? Ну я бы сказал, что макросы -- это самая важная и самая мощная часть лиспов/схем. Ну и реактивная скорость разработки на них делает лиспы незаменимыми для прототипирования.
> А во-вторых - толсто намекнуть что тем
> кто умеет на нём писать, совершенно нет повода делать растопырку пальцев
> как анончик выше.Так я о том и говорю, что анончик выше не делает растопырку пальцев. Он пишет тривиальные и очевидные вещи. Всё так, как он и описал: лиспы предполагают, что программист нативно работает с деревьями, а не с плоской последовательностью команд.
> Но Ваши подозрения беспочвенны: оба проекты были созданы с нуля и поднялись в условиях жёсткой конкуренции.Вот тут я на слово верить как раз не буду. Потому что не знаю кто/когда/как их создавал и была-ли реально конкуренция. Но не суть, суть в другом.
> Ну ок. По проекту Viaweb статья Грекхема "Beating the averages", думаю, частично даст Вам ответы. Если после неё вопросы не отпадут, приходите и задавайте.
Это знаете, такая типично сектантская методика ведения дискуссии, которая в общем-то считается неприличной. Когда человека заявляющего о том что он "в теме" просят разъяснить некоторые вещи. Но в ответ слышат: "а ты прочитай ... и ... и ... а потом ещё ... и тогда!.." Не можете/не умете/не желаете объяснять? Тогда пожалуй и в дискуссию не стоит вступать.
Ведь верить вам на слово никто не обязан и не собирается. Особенно когда сторонники подобных точек зрения начинают напоминать сектантов обладающих "тайным знанием" и на основании этого заявлять о собственном "качественно более высоком уровне" и называть всех остальных "непостигшими", а так же гордиться своей нишевостью и псевдоэлитарностью.
> Так я о том и говорю, что анончик выше не делает растопырку пальцев.
Вообще-то делает. Я вот об этом:
> Поднявшись на этот качественно более высокий уровень работы с кодом, я уже ни за что не захочу от него отказаться, а непостигшие пусть дальше продолжают изобретать себе новые и новые языки с "дружественным" синтаксисом.
А не о предыдущей части сообщения. Или вы это не замечаете поскольку тоже считаете себя богоподобным? :)
PS Ах, что бы мир делал без бирж, на которых успешные трейдеры обладающие навыками обезьяны (я не шучу, был интересный научный эксперимент на эту тему) принимают решения о судьбах экономик мира!.. Да знаете, я думаю он жил бы лучше чем с ними :)
>> Ну ок. По проекту Viaweb статья Грекхема "Beating the averages", думаю, частично даст Вам ответы. Если после неё вопросы не отпадут, приходите и задавайте.
> Это знаете, такая типично сектантская методика ведения дискуссии, которая в общем-то считается неприличной.Ну а какого рода дискуссию Вы ожидаете получить от приличной компании, когда в неё вносится человек с крикливыми тезисами "вы все гумно, снобы и сектанты"? Ну право слово. :)
> Когда человека заявляющего о том что он "в теме" просят
> разъяснить некоторые вещи. Но в ответ слышат: "а ты прочитай ...
> и ... и ... а потом ещё ... и тогда!.." Не
> можете/не умете/не желаете объяснять? Тогда пожалуй и в дискуссию не стоит
> вступать.
> Ведь верить вам на слово никто не обязан и не собирается.Ну офигеть. Разжевали, как могли, затребованные ссылки на проекты дали: "Нет, не буду читать, вы мне своими словами расскажите, что там и как, но верить на слово я вам всё равно не буду, потому что вы сектанты". Всё, ламер, идёшь лесом. Лимит вежливости ты на этом сообщении исчерпал. :)
> "вы все гумно, снобы и сектанты"?Мерзкое передёргивание. О первом я наоборот говорил что вовсе так не считаю. Ко второму вы сами подвели, в частности этим сообщением. Как и ваш эээ... Единомышленник.
Ощущение собственной офигенности, просвещённости и интеллектуального полёта над серой массой из вас двоих прямо так и сочится.
> Ну офигеть. Разжевали, как могли, затребованные ссылки на проекты дали: "Нет, не
> буду читать, вы мне своими словами расскажите, что там и как,
> но верить на слово я вам всё равно не буду,Это собственно и есть один из критериев сектантства. Когда адепты заявляют об офигительности собственного учения, правда в дискуссиях пояснять это доходчиво не собираются (возможно потому что не могут), вместо этого отсылая к "трудам" своего духовного лидера за которые тут же должны хвататься прозелиты.
Конечно мне больше нечем заняться, окромя как бегать по интернету и собирать информацию о нескольких успешных проектах, ага.
Тут рядом antares0 ответил понятно и без распальцовки как у вас. Жалко, что пока что на следующий мой вопрос не ответил. Но вы почитайте его ответ, сравните со своими, подумайте. Взрослым дядям полезно работать над своим поведением.
> Всё, ламер, идёшь лесом. Лимит вежливости ты на этом сообщении исчерпал.
Видите что убедить не получается, потому тут же переходите к оскорблениям? Понятно. Если честно, то был лучшего мнения конкретно о вас.
> Лимит вежливости ты на этом сообщении исчерпал. :)Аналогичный случай был на той неделе в жабере, забавно.
В смысле тоже с Ромой, который давненько уж не объявлялся, а тут вдруг запросил аналитику по отрасли, о которой я разве что слышал (в смысле знаю сугубо недостаточно для оценочных/прогностических суждений), за несколько дней до моего нынешнего отпуска и соответственно весьма плотных и без таких хотелок.
На относительно вежливое "а не с дуба ли ты рухнул?" прикинулся непонятливым (хотя это не так), пришлось высказаться примерно так же и с тем же результатом -- "а, грубишь, значит, убедить меня не получается".
Как если бы такая задача вообще стояла.
> Ну если сходу... Широкоиспользуемое -- ViaWeb. Это веб сервис. Его вроде бы
> купили и, емнип, теперь это один из сервисов Yahoo.Его перепимали на Жабу после покупки. И это было давно
Ссылок россыпью
https://lisp-lang.org/success/
https://en.wikipedia.org/wiki/ITA_Software#cite_ref-5 &...Выжгли своих конкурентов за счет сверхэффектиной компиляции алгоритмов планирования с помощью CL.
Ликбез агиткой - http://www.lispworks.com/products/myths_and_legends.html
https://franz.com/agraph/allegrograph/ - тоже известный монстрик. У него мало конкурентов по объему возможностей
Даже не знаю с чего начать. Ну как-бы большая часть открытых систем компьютерной алгебры - на ем, на лиспе.Хотя, в сущности, любой язык программирования так или иначе используется для создания другого языка, на котором решается конкретная прикладная задач. Так что ТЗ гражданина вряд-ли что вообще способно удовлетворить в принципе.
> Ну как-бы большая часть открытых систем компьютерной алгебры - на ем, на лиспе.Раз не знаете с чего начать, то начните с простого. Коли так зашли с видом "я в теме", то ведь вы можете объяснить почему оно именно на нём, а не на чём-нибудь другом? Есть же тому какая-то объективная причина кроме "так исторически сложилось"?
>> Ну как-бы большая часть открытых систем компьютерной алгебры - на ем, на лиспе.
> Раз не знаете с чего начать, то начните с простого. Коли так
> зашли с видом "я в теме", то ведь вы можете объяснить
> почему оно именно на нём, а не на чём-нибудь другом?Конечно же есть объяснение. Основа лиспов -- символьные выражения. Вполне очевидно, что нет лучшей альтернативы для задач компьютерной алгебры, потому что sexp -- это естественное представление объекта её работы. :)
Хорошо, т.е. узкоспециализированные математические задачи. (я конечно нифига в них не понимаю, но поверю на слово, навряд вам есть резон врать по этому поводу)А ещё какие-нибудь объективные плюсы?
Ну в смысле я всё пытаюсь понять откуда столько пафоса у анона и есть-ли в нём хоть зерно здравого смысла. Потому одно то что ЯП решает узкоспециализированные задачи конкретной среды не делает его супер-языком возносящим умеющего на нём писать в поднебесье и дающего реальные профиты вообще везде.
> Хорошо, т.е. узкоспециализированные математические задачи.Я бы не назвал компьютерную алгебру узкоспециализированной задачей. Это примерно как назвать математику "еще одной наукой".
> А ещё какие-нибудь объективные плюсы?
Простота, макросы.
> Я бы не назвал компьютерную алгебру узкоспециализированной задачей. Это примерно как назвать математику "еще одной наукой".Ну так каждый специалист считает что конкретно без его профессиональной области весь мир рухнет, и часто такие выводы верны. Но не верно из этого делать выводы о широте собственной предметной области.
Например без труда хлебороба мир рухнет гораздо быстрее чем без компьютерной алгебры. Но ведь от этого его навыки и знания не становятся широко применимыми.
Возвращаясь к компьютерам. Более популярные языки например успешно применяются во множестве совершенно разных отраслей, буквально где угодно - редактирование текста, математические расчёты, игры, микроконтроллеры встраиваемых устройств выполняющих совершенно разные функции и т.д. и т.п.
Lisp же и наследники для подобного оказались (пока?) непригодны. Потому мне и думается что ничего для "ах!"-воздыханий в них на самом деле нет. Т.е. вероятно это хороший инструмент для решения весьма узкого круга задач. Но не более того. Вы же не воздыхаете о том как бесподобна сельхоз техника, и потому инженеры её разрабатывающие находятся на "качественно более высоком уровне" чем все остальные.
>> Я бы не назвал компьютерную алгебру узкоспециализированной задачей. Это примерно как назвать математику "еще одной наукой".
> Ну так каждый специалист считает что конкретно без его профессиональной области весь
> мир рухнет, и часто такие выводы верны.Да не рухнет, конечно. Бегают еще спустившиеся всего-то пару миллионов лет назад обезьяны или уже отбегались - миру глубоко пофигу.
Но речь шла не об этом, конечно. А о том, что математика - не просто "узкая профессиональная область".
> Возвращаясь к компьютерам. Более популярные языки например успешно применяются во множестве
> совершенно разных отраслей, буквально где угодно - редактирование текста, математические
> расчёты, игры, микроконтроллеры встраиваемых устройств выполняющих совершенно разные
> функции и т.д. и т.п.
> Lisp же и наследники для подобного оказались (пока?) непригодны.Почему-ж? С математическими расчетами, полагаю, мы можем закончить - тут полный порядок, верно?
Текст все редактируют в Emacs. Кроме секретарш и слуг Сотоны.
Игры есть, благо ИИ был lispовой вотчиной еще до Большого Взрыва.
> Т.е. вероятно это хороший инструмент для решения весьма узкого круга задач.
Неверно. Обычный, современный, высокоуровневый язык (или семейство таковых). С уникальными возможностями, вроде кастомизации синтаксиса - делающими его особенно удобным для определенных
приложений.Есть и цена. Упомянутые возможности требуют от инженеров несколько большей квалификации, несмотря на кажущуюся простоту языка(ов), откуда и понты. Возможно, вполне безосновательные в данном конкретном случае.
#90Ну и макросы, конечно. Даже, наверное, начиная с макросов.
> почему оно именно на нём, а не на чём-нибудь другом? Есть
> же тому какая-то объективная причина кроме "так исторически сложилось"?Основное применение Common Lisp это обсчет планирования и моделей реагирования там где вводные появляются и непрерыно меняются на всем этапе разработки. С слишком архтектурно хрупок для этого и слишком медлено проходит по циклу компиляция/испонение. Интерпетаторы слишком неэффектины на этпе исполнения.
Противоречие С и Пролога. Любое отдельно взятое состояние Пролог-машины может быть закодировано на С и исполнено на порядки быстрее, но каждый новый факт в базе делает аналогичный код на С устаревшим:( Можно пытатся искать все ноые гибкие структуры данных для С, но они же уменьшают эффектвность исполния и делают код сложнее в сопровождении.
Компиляторы лиспа призваны ахитектурно заполнять эту брешь.
>> почему оно именно на нём, а не на чём-нибудь другом? Есть
>> же тому какая-то объективная причина кроме "так исторически сложилось"?
> Основное применение Common Lisp это обсчет планирования и моделей реагирования там где
> вводные появляются и непрерыно меняются на всем этапе разработки.Благодарю. Вы на мой взгляд единственный, кто пытался дать минимально развёрнутый ответ без ощущения собственной богоподобности :)
В общем, как я понимаю, это таки хороший инструмент для решения весьма узкого спектра задач. При этом решаемые задачи могут быть весьма важны и полезны.А можете посоветовать что-нибудь почитать именно по этой теме (то что я процитировал), какую-то вводную статью и т.п. И желательно на русском, т.к. чую что от подобной темы на английском мой мозг будет вскипать быстрее чем я начну понимать хоть что-нибудь.
>А можете посоветовать что-нибудь почитать именно по этой теме (то что я
> процитировал)PAIP - без него мало смысла начинать.
, какую-то вводную статью и т.п. И желательно на русском, т.к.
> чую что от подобной темы на английском мой мозг будет вскипать
> быстрее чем я начну понимать хоть что-нибудь.Второе (старое) издание AIMA переводили
> Стюарт Рассел, Питер Норвиг. Искусственный интеллект: современный подход (AIMA) = Artificial Intelligence: A Modern Approach (AIMA).-- 2-е изд.-- М.: <<Вильямс>>, 2007.-- С.1424.-- ISBN 0-13-790395-2.ANSI Common Lisp тоже переводили, это основы языка.
SICP который есть в переводе в приниципе идет по тем же темам, но цель изложения там другая и не факт что будет понятно. Хотя нужную базу он закладывает. За не имением другого можно и его.
>> Стюарт Рассел, Питер Норвиг. Искусственный интеллект: современный подход (AIMA) = Artificial Intelligence: A Modern Approach (AIMA).-- 2-е изд.-- М.: <<Вильямс>>, 2007.-- С.1424.-- ISBN 0-13-790395-2.
> ANSI Common Lisp тоже переводили, это основы языка.Давно получил ваше сообщение, но всё никак не собирался ответить.
Спасибо! Посмотрю на досуге.
> Даже не знаю с чего начать. Ну как-бы большая часть открытых
> систем компьютерной алгебры - на ем, на лиспе.Кстати да, совсем вылетело из головы! Maxima, Methematica, конечно же! :)
> Methematica, конечно же! :)Если вы о Wolfram Mathematica, то нет. Начиная с того, что она закратая и заканчивая тем, что не совсем Lisp.
Axiom (и ее производные), Reduce. Даже на Scheme что-то есть.
> Если вы о Wolfram Mathematica, то нет... не совсем Lisp.Некоторые говорят, что и Clojure не Lisp... Как же, как же.
Давайте возьмём за постулат, что к лиспам относятся собственно: Scheme и производные, CL и прозводные, а также DSL-и, основанные на sexp-ах.
Макросы?
> Макросы?Не обязательно. Всё, что можно написать с макросами, можно написать и без макросов.
Дак и все что можно написать на лиспе - можно написать без лиспа.
> Дак и все что можно написать на лиспе - можно написать без лиспа.Я всё-таки аппелирую к тому, что лиспы определяются наличием sexp-ов и операциями над ними. Нет, ну серьёзно, возьми курс SICP. Он на основе mit-scheme строится. Где там хоть одно упоминание о макросах? Нету. По факту macros -- это та же функция. Разница лишь в том, что он исполняется в compile-time.
> Где там хоть одно упоминание о макросах? Нету.Эмм... Гл. 4 Metalinguistic Abstraction - оно как раз про это, про расширение синтаксиса. Правда в практических лиспах это делается не так, как там, а как раз через макросы. О чем, собственно, сказано в одном из примечаний.
> факту macros -- это та же функция. Разница лишь в том,
> что он исполняется в compile-time.Нет, макросы - это категорически не функции. Для функций в лиспах есть совершенно
определенные правила вычисления, которым макросы не подчиняются (иначе что мешало
бы просто использовать функции?).
Окей. Признаю свою ошибку. Да, метациклический интерпретатор, описанный во второй главе, можно считать прототипом макроса. Да, правила вычисления макроса сильно отличаются от функции.Придётся тогда признавать, что без макросов dsl на sexp-ах лиспом не является.
Myhand, спасибо, что указали на мои ошибки. :)
> метациклический интерпретатор, описанный во второй главе, можно считать прототипом макроса.Ну да, если учесть что в этой главе написано про расширение синтаксиса.
> Придётся тогда признавать, что без макросов dsl на sexp-ах лиспом не является.
Будет любопытно если приведете примеры лиспов без макросов. Но по-моему таких в природе нету.
Курица не птица, Clojure не Lisp. :)
Скобки лиспа — это, конечно, вынос мозга за пределы видимости.Позвольте полюбопытствовать: а ваши «мы» это кто?
> Скобки лиспа — это, конечно, вынос мозга за пределы видимости.Не вынос мозга, а расширение кругозора. А ты просто ленив и глуп. Ах да, а ещё ты "КГБ СССР".
> Позвольте полюбопытствовать: а ваши «мы» это кто?
Ну например я.
>> Скобки лиспа — это, конечно, вынос мозга за пределы видимости.
> Не вынос мозга, а расширение кругозора. А ты просто ленив и глуп.
> Ах да, а ещё ты "КГБ СССР".Я так понимаю, это здесь модератор тыкает взрослым уважаемые людям? Юноша, придержи лошадок на поворотах.
>> Позвольте полюбопытствовать: а ваши «мы» это кто?
> Ну например я.Вот это сильно! Я очень впечатлён. Позвольте откупорить за вас бутылочку шампанского.
> Я так понимаю, это здесь модератор тыкает взрослым уважаемые людям?Разрешите полюбопытствовать -- где это вы тут увидели взрослых и уважаемых людей? В зеркале? А не происки ли это злобных террористов, регулярно и щедро добавляющих кристаллы ЛСД в городской водопровод?
У кого ж это столько лишних денег, чтобы засорять городской водопровод ценными веществами?
Настолько осязаемо, что его можно понюхать, ощутить мягкость его скобок. :)ПС: лиспер с 10-летним стажем.
А обещанный ИИ и поныне там. Где? Да вот там, где вы подумали, да-да. :)
В каждом сраном мобильнике?
В КГБ?
Искуственный Интеллект повсеместно, если не в каждой то через одну голову
> Искуственный Интеллект повсеместно, если не в каждой то через одну головуВ твоей голове, похоже, и естественного нету. Иначе ты бы осилил загуглить и прочитать, что Artificial Intelligence — это не искусственный интеллект. Переводчики на руссиш оказались вроде тебя — с двойками в школе по Инглишу.
> загуглить и прочитатьНа викимусорку еще сошлись. Больше аду!
> Artificial Intelligence — это не искусственный интеллект.
Скажем так, не все с этим согласные.
Ну вот, о чем я и говорил.
Спасибо за emacs!
> Спасибо за emacs!Пожалуйста!
Но ведь есть vim!
А ещё есть Spacemacs, у которого слоган "The best editor is neither Emacs nor Vim, it's Emacs and Vim!"
Evil mode! Сотона атакуе!
Он только пищит или всё портит.
Петросяны на месте?
Степаненко, ты?
Регина?
Долбовицкая?
Лисп всю жизнь был мультипарадигменый до уср*чки, достали уже со своим клеймом "фп".
ФП развилось из Лиспа, а Лисп построен на основе лямбда-исчисления. Но да, все это совершенно не обязывает Лисп быть чистым функциональным языком программирования.
Фунциональная парадигма развилось из математического формализма. APL — 1960, FP — 1977, FL — 1989, Miranda — 1985, ML — 1973, Erlang — 1986. APL функциональный язык, уникальный по семантике и синтаксису, родился под влиянием математической нотации и определил своей семантикой целую группу языков. FP появился так же как независимый продукт, в дальнейшем реинкарнировав в FL, и оба они вкупе с Miranda и ML зародили группу, ныне наиболее распространенную, языков программирования "функционального стиля" — Haskell, OCaml. Erlang вообще говоря стоит особняком.
Говорить что функциональный стиль программирования пошёл от лиспа по крайней мере не грамотно, хотя первая редакция лиспа от Маккарти и обладала в определенной степени функциональными чертами.
фортран и лисп реализовали два полярных подхода в математике того времени, Тьюринга и Чёрча, и создавались именно для этого.
И какие есть актуальные в наше время лиспы кроме Clojure?
Guile?
Guile- - реализация конкретного (диалекта) Lisp
> Guile- - реализация конкретного (диалекта) LispПриведите примеры реализации _неконкретного_ диалекта LISPа ?
--
И да, в [или на/для] guile есть [наколенные реализации] elisp, js, tcl, ....
https://www.gnu.org/software/guile/manual/html_node/Supporti...
http://lists.gnu.org/archive/html/guile-devel/2018-09/msg000...
http://lists.gnu.org/archive/html/guile-devel/2018-08/msg000...
http://lists.gnu.org/archive/html/guile-devel/2018-07/msg000...
> Приведите примеры реализации _неконкретного_ диалекта LISPа ?А разве я этим угрожал?
> И да, в [или на/для] guile есть [наколенные реализации] elisp, js, tcl
Кое-что даже для Python начинает шевелиться
https://gitlab.com/python-on-guile/python-on-guile
CL, Scheme
> И какие есть актуальные в наше время лиспы кроме Clojure?[I]"" Most new activity is focused around implementations of Common Lisp, Scheme, Emacs Lisp, Clojure, and Racket, and includes development of new portable libraries and applications. ""
Clojure, вообще говоря, семантически не является лиспом.
Common Lisp, как ни странно жив и будет жив.
Pico Lisp, маргинальщина, но со своей изюминкой и пользователями.
Racket семантически близок к лиспу, но это разновидность Скимы, актуальна, гиперактивна.
JavaScript во многом семантически копирует лисп, но имеет извращенский синтаксис.
Ещё есть специфичные DSL базирующиеся в той или иной степени на лиспе — uLisp (для микроконтроллеров, BioLisp.
Я бы сказал, что из перечисленного живы только Clojure и Racket. Плюс я бы добавил Emacs Lisp и Guile.PS Когда говоришь про CL, надо всё же указывать конкретную реализацию. SBCL например. Но я бы не сказал, что там большая тусня.
С Emacs Lisp всё более-менее понятно. А Guile где жив? Мне кажется я бы с удовольствием в него углубился, но где мне это пригодится? Хочу выбрать и вкурить какой-нибудь язык, на котором будет удовольствие для перфекциониста писать и в то же время легко найти не маргинальное применение в жизни.> Когда говоришь про CL, надо всё же указывать конкретную реализацию.
Согласен, но наверно стоит заметить, что преимущество CL перед Scheme как раз в существенной мере стардартизации и переносимости кода между реализациями.
> С Emacs Lisp всё более-менее понятно. А Guile где жив? Мне кажется
> я бы с удовольствием в него углубился, но где мне это
> пригодится?Честно -- сам я не видел, но в Guix вроде бы активно юзается. Вообще, схема, она и в африке схема. Мне плевать на конкретную имплементацию, я буду на Guile смотреть, когда (если) guile-emacs будет готов.
> Хочу выбрать и вкурить какой-нибудь язык, на котором будет удовольствие
> для перфекциониста писать и в то же время легко найти не
> маргинальное применение в жизни.Тогда выбирай OCaml. Это правда ML, а не Lisp, но он даст Вам именно то, о чём просите. Рекомендую использовать стандартную библиотеку Core и книжку Real World Ocaml (она вполне официально доступна в онлайне абсолютно бесплатно).
>> Когда говоришь про CL, надо всё же указывать конкретную реализацию.
> Согласен, но наверно стоит заметить, что преимущество CL перед Scheme как раз
> в существенной мере стардартизации и переносимости кода между реализациями.Может оно и так, но к сожалению, когда ты сталкиваешься с CL, тебе необходимо принять как факт, что тот функционал, который тебе кажется само собой разумеющимся, в CL придётся самостоятельно дописывать. И даже quicklisp этого не исправляет. Такова вот грустная реальность.
Что касается Scheme -- то там тусня заметно шире. В том же Racket велика вероятность, что если Вам нужен какой-либо модуль, то он там уже есть.
> Может оно и так, но к сожалению, когда ты сталкиваешься с CL,
> тебе необходимо принять как факт, что тот функционал, который тебе кажется
> само собой разумеющимсяНапример? любопытно.
> Что касается Scheme -- то там тусня заметно шире. В том же
> Racket велика вероятность, что если Вам нужен какой-либо модуль, то он
> там уже есть.Scheme заметно шире = Racket ? Или ты что-то еще из продвинутое имеешь ввиду?
> А Guile где жив?Он до сих является официальным стандартом для языка расширений в GNU. Очень подробно документирован (не хуже питона, как минимум), с потрохами.
А так, смотря с чем сравнивать. Если сравнивать с CPython, то скорее мертв, чем жив. А вот если с PyPy - то вполне себе шевелится.
Опять таки, никаких CoC, никаких инклюзивностей. SJW пока стороной обходят, цените это...
> официальным стандартом для языка расширений в GNUДа, но где и что это за расширения такие, например? Единственная расширяемая программа GNU, мне известная - это GIMP и там свой вариант Scheme на сколько я помню.
Ну, зайдите для начала хоть на сайт guile посмотреть.
>> А Guile где жив?
> Опять таки, никаких CoC, никаких инклюзивностей. SJW пока стороной обходят, цените
> это...В гайле, да, нет КоК-а.
Вот в гиксе -- уже.
http://git.savannah.gnu.org/cgit/guix.git/tree/CODE-OF-CONDUCT
Оутрич-интерны инклюзивят, гугло-студенты.Популярный проект[I]!
Есть надежда, что Гикс теперь перейдет на GKCG (хороший ход от Столлмана, чтобы SJW заткнулись, но моральную панику не разводить и охоту на ведьм не устраивать). Предложение в рассылке уже было.
They seem reasonable (a tad reactionary, but hey, it's rms) but orthogonal to our CoC.Короче, ниасиливший инклюзивность старичок нам не указ.
> Есть надежда, что Гикс теперь перейдет на GKCG (хороший ход от Столлмана,
> чтобы SJW заткнулись, но моральную панику не разводить и охоту на
> ведьм не устраивать). Предложение в рассылке уже было.В гиксе надь не менять шило на мыло, а .... больше [[[вырезано само- цензурой, читайте полный текст на http[[[вырезано из вырезанного]]] ]]].
Впрочем, не будем разводить фотопИк политотУ. </Ура.>
> С Emacs Lisp всё более-менее понятно. А Guile где жив? Мне кажется
> я бы с удовольствием в него углубился, но где мне это пригодится?Например, http://altlinux.org/alterator (и да, за владение guile у нас вполне реально сторговать более высокую зп).
> Хочу выбрать и вкурить какой-нибудь язык, на котором будет
> удовольствие для перфекциониста писать и в то же время легко найти
> не маргинальное применение в жизни.Ну "легко" -- это не факт, скорее "возможно разумными усилиями", я бы сказал...
А guile в модном нынче Guix.
Guix уже обогнал по популярности Nix (популярность которого, вопреки офигенности, где-то около нуля)?
> Guix уже обогнал по популярности Nix (популярность которого, вопреки офигенности, где-то
> около нуля)?Да, именно! В форуме опенета всё именно так.
Guile вполне себе развивается. На подходе 3.0 (уже вышла бета), в котором будет JIT.
Guix, похоже, подогрел интерес к этому языку.
А говоря про C или C++ нужно указывать например gcc или clang? Безусловно, если речь про виндоус зайдет, то тогда да, следует упомянуть реализацию, ибо это уже не совсем тот язык, который знают нормальные ребята.
Я пишу на portable Common Lisp, работаю на 3-х реализациях: ecl, sbcl, ccl.
> А говоря про C или C++ нужно указывать например gcc или clang?Вы не поверите сколько у gcc нестандартных расширений. Так что да, таки нужно, в общем случае этими вещами пользуются.
> Безусловно, если речь про виндоус зайдет, то тогда да, следует упомянуть
> реализацию, ибо это уже не совсем тот язык, который знают нормальные
> ребята.Знаете, у CL-ей такая большая разница между реализациями, что всё же указывать конкретные не лишним будет.
> Знаете, у CL-ей такая большая разница между реализациями, что всё же указывать
> конкретные не лишним будет.Забавно. Читал ровно обратное. Стандартизованность между реализациями и лёгкость переноса кода с одной на другую позиционируется как преимущество Common Lisp.
>> Знаете, у CL-ей такая большая разница между реализациями, что всё же > Забавно. Читал ровно обратное.Где? мы тоже почитаем!
> кода с одной на другую позиционируется как преимущество Common Lisp.
> А говоря про C или C++ нужно указывать например gcc или clang?нет, потому что в clang используется "совместимый" (читай - скопипащеный) кодогенератор. Именно потому, что иначе хрен бы чего дальше хеловорд работало бы, даже на plain c. (разница в стандартах по умолчанию не в счет, тем более они и в разных версиях разные)
> Безусловно, если речь про виндоус зайдет, то тогда да, следует упомянуть реализацию, ибо это
> уже не совсем тот язык, который знают нормальные ребята.ну то есть так и запишем - "нормальные ребята" ничего кроме gcc распоследней версии ниасилили.
>> А говоря про C или C++ нужно указывать например gcc или clang?
> нет, потому что в clang используется "совместимый" (читай -
> скопипащеный) кодогенератор.Генератор или разбиратор? А то тех же VLA и вложенных функций там тоже нет (как и в любом не-gcc, насколько понимаю).
>> А говоря про C или C++ нужно указывать например gcc или clang?
> нет, потому что в clang используется "совместимый" (читай - скопипащеный) кодогенератор. Именно
> потому, что иначе хрен бы чего дальше хеловорд работало бы, даже на plain c. (разница в
> стандартах по умолчанию не в счет, тем более они и в разных версиях разные)Подскажите, как связан кодогенератор с диалектом языка? Я всегда думал, что за это фронтенд отвечает.
И как можно скопипастить кодогенератор, если у них IR совершенно разный?
> Подскажите, как связан кодогенератор с диалектом языка?диалект-то как раз - настраивается. (причем это то самое место, где настройки по умолчанию у clang/gcc разные, что иногда ведет к лулзам на ровном месте)
а вот дальше начинаются чудеса, включая но неограничиваясь даже /lib/libgcc_s.so.1 - казалось бы, откуда он взялся в системе где нет и не может быть никакого gcc? ;-)
И главное, главное хайповый JavaScript с её first-class function, замыканиями и объектами как список пар ключ-значение. Всё это прямиком из Lisp'а...
> И главное, главное хайповый JavaScript с её first-class function, замыканиями и объектами
> как список пар ключ-значение. Всё это прямиком из Lisp'а...И всё это в нижних руках обезьянок, не способных понять мудрёные слова из вашего коммента.
Лисп - изящный язык, на самом деле. Скобки абсолютно не мешают, если оформлять код по строгим правилам, что нужно делать вообще в любом языке. А лисповские макросы - это прям вау, я могу забабахать собственный цикл или ещё что посложнее, на что фантазии хватит
Ну как не мешают? Если их больше четырёх рядом — это уже перебор для восприятия нормального человека.
> Ну как не мешают? Если их больше четырёх рядом — это уже перебор для
> восприятия нормального человека.Вот он -- детектор человека, никогда на лиспе не писавшего.
>> Ну как не мешают? Если их больше четырёх рядом — это уже перебор для
>> восприятия нормального человека.
> Вот он -- детектор человека, никогда на лиспе не писавшего.Делать мне больше нечего — за еду писать буковки для компьютера. Ты для напишешь. Ещё и спасибо скажешь. :)
Нормальные люди на родном языке уже пишут с трудом. Тоталитарное наследие кровавых коммунистов успешно прое^Wпреодолено, если вы вдруг не знали.
Коммунистам тоже не стоило выбрасывать "лишние" буквы.
Поддерживаю оратора выше. Сейчас выросло поколение:
"А зачем учить географию, если извозчик сам довезет?"Им скобки с трудом уже даются. Куда уж там до LISP
> Если их больше четырёх рядом — это уже перебор для восприятия нормального человека.Поверьте, нисколько не перебор. Если код правильно выравнивать и соблюдать правила по скобкам (не должно быть строк с одними скобками), то всё прекрасно читается, плюс ещё текстовый редактор должен подсвечивать. На Си или JS тоже можно скобок понаставить рядом, да ещё разных видов, но никто не обвиняет сами языки - обвиняют кодеров без элементарных навыков "чистописания". Так же должно быть и здесь.
Разумеется, язык программирования не виноват в том, что на нём иногда пишут обезьяны обезьяньи программы.
Есть такой чувак, по имени Егор Бугаенко. Так он пропагандирует "правильное", с его точки зрения, ООП. Его код очень напоминает функциональное программирование. При этом он сам заявляет, что объекты лучше функций, поскольку кроме поведения у них есть ещё и состояние. Оценить "настоящий" ООП, который лучше функционального программирования можно тут https://www.youtube.com/watch?v=20QBvrHq6TA&t=12m57sКакие ваши комментарии?
> JavaЭто норма. Там сразу и не понять границы.
Речь вовсе не о лямбдах. Просто посмотри ролик с указанного места.
> Какие ваши комментарии?Посморел до 19й минуты, не увидел ничего криминального. Лучше пишите конкретные цитаты.
Матрёшка объектов, дёргающих методы друг друга как функции в функциональных ЯП.
> Матрёшка объектов, дёргающих методы друг друга как функции в функциональных ЯП.Ну да. Это хорошо и правильно. Такова специфика ООП.
У функции тоже может быть состояние -- такая функция называется замыкание.ps. видео не смотрел, смотреть слишком долго. можно в текстовом варианте?
Посмотрел код, в принципе неплохо. Ставит везде final, это одобрямс.Но...
В некоторых местах неоправдано создаются лишние объекты.
Например:
public Response act(final Request req) throws IOException {
final String name = new RqFormBase(req).param("name")
.iterator().next().trim();На парсинг параметра он породил как минимум 2 объекта - RqFormBase и Iterator.
Я как главный разраб за это бы наказал, читай - недопустил бы подобный код в проекте за который я отвечаю. Жава и без этого любит покушать памяти и для меня странно видеть, как люди делают вид, что этого не знают. Надо уважать железо и считаться с ним хоть в какой-то степени.
Чем хуже это?
final String name = req.firstParam("name").trim();
trim() тоже лучше спрятать под капот, если он его неизбежно делает каждый раз в подобных местах.
Итого:
final String name = req.firstParam("name");
vs
final String name = new RqFormBase(req).param("name")
.iterator().next().trim();Портянка ТкApp тоже на любителя. Оно вроде наглядно, но присмотревшись понимаешь, что эта лапша заставляет тебя нехило всматриваться.
Этакий непонятый гений получается.
Индустрия софтостроения начиналась с Lisp-ов, а заканчивается всякими голынгами. Кто такой сказал, что эволюция идёт по пути совершенствования и усложнения? В софтостроении всё наоборот в этом плане.
есть такое определение: "эволюция всех известных языков программироваия - это путь от фортрана к лиспу"
> есть такое определение: "эволюция всех известных языков программироваия - это путь от
> фортрана к лиспу"Следствие/лемма м.б.?...
https://ru.wikipedia.org/wiki/%D0%94%D0%...
нет, в том смысле что каждый новый язык создается как компромис между фортрановской парадигмой и каким-то набором функциональных примочек, но по мере развития доля функциональщины стабильно увеличивается. Справедливо и для функциональных языков, и для cl конечно, тоже стремятся к идеальному лиспу. Только форт как родился так и пошел в обратную сторону. Но там всё в обратную сторону, тем и живут :)
Лисп -- это язык американской научно-технической элиты. Исторически специализировался для ислледований в области Искусственого Интеллекта. Хотя, сам этот язык является языком общего назначения.
Жаль, что так быстро ушёл из жизни. На нём не успели написать ничего стоящего, что бы сегодня использовалось.