LINUX.ORG.RU

Вопрос про историю лиспа

 , ,


1

2

Мне понравилось замечание в SICP что у лиспа довольно специфичный взгляд на синтаксический сахар. Но вот я не могу понять почему в таких формах из CL как cl:defun или cl:destructuring-bind у ключевых симоволов &key, &optional приставка & вместо использования более адекватных для CL кейвордов?

★★★★★

Вопрос лишён смысла. Сахар бывает разных видов: из сахарного тростника, из свеклы, но из синтаксиса его не делают «Кейвордов» тоже не существует. Lisp очень старый язык програсмирования. Следовательно, у его автора не было большого опыта программирования и возмозности заимствовать полезные идеи из других языков. Что смог придумать головой (она обычно находится на верхнем конце автора языка программирования), тому и радуйтесь.

Впрочем, реально Lisp сейчас не нужен. Поэтому неважно, каков у него синтакчис.

Partisan ★★★ ()
Ответ на: комментарий от Partisan

Следовательно, у его автора не было большого опыта программирования и возмозности заимствовать полезные идеи из других языков.

Как это, а Algol.

и вообще

Джон Мак-Карти предложил функции рассматривать как общее понятие, к которому могут быть сведены все другие понятия программирования.

Не такая уж плохая идея.

saufesma ()

Но вот я не могу понять почему в таких формах из CL как cl:defun или cl:destructuring-bind у ключевых симоволов &key, &optional приставка & вместо использования более адекватных для CL кейвордов?

Может они просто баловались, а у тебя вопросы, да и потом какая разница если это работает.

saufesma ()
Ответ на: комментарий от saufesma

Какой Алгол, если Лисп второй язык высокого уровня вообще? Тогда Алгола даже в планах не было. И да, Лисп нужен. Не таким «практикам» как некоторые, но исследователям уж точно. И те которые говорят что Лисп мертв, просто не знают, что живучесть языка не зависит от наличия вакансий на него. Сейчас даже Clojure актуален со всей его инфраструктурой, но неготовность бизнеса его использовать, то совсем другая история.

Artamudo ★★ ()
Ответ на: комментарий от Partisan

Lisp очень старый язык програсмирования. Следовательно, у его автора не было большого опыта программирования и возмозности заимствовать полезные идеи из других языков.

Не знаю какой у МакКарти был опыт, но последние 60 лет другие языки заимствуют полезные идеи из лиспа. И, при таких темпах, еще на несколько десятилетий хватит.

Впрочем, реально Lisp сейчас не нужен.

А в этом ты прав. 99-и процентам современных программистов лисп не только не нужен, а даже вреден.

anonymous ()
Ответ на: комментарий от Artamudo

синтаксис, которого нет

как это «нет»?
взяли функцию, накидали ей аргументов, запустили (закрывающей скобкой или переводом строки)
так работает Lisp или Tcl

anonymous ()
Ответ на: комментарий от Artamudo

Всё что так и не «заимствовали» из Лиспа, так это синтаксис, которого нет =)

Мозгов у тебя нет.

Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом. (ц) Синтаксис (программирование)

Любой язык, не только программирования, имеет набор правил, следовательно, язык без синтаксиса не может существовать в принципе. Если ты не понимаешь такой простой вещи, то объяснить что-либо посложнее тебе не возможно. (

anonymous ()
Ответ на: комментарий от anonymous

А ты такой умный, прям не поленился указать мне, что я, видите ли, безмозглый. Если остальные языки имеют уйму синтаксических правил, то Лисп имеет лишь одно. Да, это формально синтаксис, но не в привычном понимании. Самоутвердился кинув ссылку из Википедии?!

Artamudo ★★ ()
Ответ на: комментарий от anonymous

Мозгов у тебя нет.

Мозг — центральный отдел нервной системы животных, обычно расположенный в головном (переднем) отделе тела и представляющий собой компактное скопление нервных клеток и их отростков-дендритов. У многих животных содержит также глиальные клетки, может быть окружен оболочкой из соединительной ткани. У позвоночных животных (в том числе и у человека) различают головной мозг, размещённый в полости черепа, и спинной, находящийся в позвоночном канале. (ц) Мозг

Любое млекопитающее, не только человек, имеет мозг, следовательно, человек без мозга не может жить в принципе. Если ты не понимаешь такой простой вещи, то объяснить что-либо посложнее тебе невозможно. (

anonymous ()
Ответ на: комментарий от anonymous

P.S. Если и так не дошло: «нет» в контексте синтаксиса подразумевало не «совсем нет», а гиперболу. Точно так же, как и в первом предложении твоего ответа (про мозги).

anonymous ()
Ответ на: комментарий от anonymous

«Человек без мозгов» это не гипербола, а устоявшееся выражение, обозначающее очень глупого человека.

«Язык без синтаксиса» - не гипербола, а выражение противоречащее определению синтаксиса. Определение из википедии не противоречит определению из руководства по написанию компилятора, но ищется быстрее.

У тебя, похоже, тоже мозгов не хватает)

anonymous ()
Ответ на: комментарий от Deleted

но последние 60 лет другие языки заимствуют полезные идеи из лиспа

Проиграл, че за идеи то?

Основные идеи лишпа:

  1. Безбожно тормозить и жрать память (заимствованы Python, Ruby и т.п.)
  2. Не уметь в многопоточность (заимствованы Python, OCaml)
  3. Быть нечитабельным говном (заимствованы C++, Rust)

Только я бы не назвал эти идеи «полезными».

anonymous ()
Ответ на: комментарий от anonymous

Это ты где такое вычитал?

1. Скажи хотя бы про какую ты реализацию говоришь.

2. Многопоточность есть, да ещё какая! И как это в Python и OCaml нет многопоточности?! Пруфы

3. Про гомоиконность что-то слышал?

Artamudo ★★ ()
Ответ на: комментарий от Artamudo

Это ты где такое вычитал?

Это все знают.

1. Скажи хотя бы про какую ты реализацию говоришь.

Тащемта любую.

2. Многопоточность есть, да ещё какая!

В каком разделе стандарта ANSI CL описана?

3. Про гомоиконность что-то слышал?

Что-то слышал.

anonymous ()
Ответ на: комментарий от Artamudo

И как это в Python и OCaml нет многопоточности?!

Про OCaml не знаю, а что касается Python, у меня для тебя всего три буквы — GIL. Потоки есть, но работают они последовательно по очереди. Есть костыли с полноценной многопоточностью, но обмен данными происходит путём копирования памяти.

WitcherGeralt ★★ ()
Ответ на: комментарий от Artamudo

просто не знают, что живучесть языка не зависит от наличия вакансий на него

Вы размываете понятие живучести себе в угоду, а по-простому врёте. Такие балаболы зазвиздятся до того что вообще всё живо что когда-то было написано. Но нет, эта ошибка природы живой не станет ни если на ней что-то когда-то писали, ни если на ней сейчас пишут какие-то невмендосы, ни если другие невмендосы думают что на ней что-то там исследуют, ни даже если из этих исследований каким-то невообразимым образом получится что-то что повлияет на настоящие языки. Это всё равно не более чем гнилая бледная мертвечина на анатомическом столе.

slovazap ★★★★★ ()
Ответ на: комментарий от slovazap

Вот скажи-ка мне, вмендос, зачем писать, скажем, на JavaScript, Python или Java? Ну тупо, зачем? Чем они более вменяемые чем скажем, Common Lisp? Они же ущербное, кривое и невменяемое говно, как в плане синтаксиса и семантики, так и в плане реализаций и рантаймов.

lovesan ★☆ ()
Ответ на: комментарий от Deleted

Зато просветили объектные рептилоиды с альфа-центавры? CL - проще и питона и жабы, и тем более каких-нибудь скалы и прочего подобного. Проще JS, если брать современный JS, конечно со всем этим core-js.

lovesan ★☆ ()
Ответ на: комментарий от Artamudo

но неготовность бизнеса его использовать

На Руси наебизнес даже не знает о существовании такого языка. В лучшем случае помимо жабы слышали (и даже немного используют) про Scala. Кложа - торт, дурак я, что её забросил.

Hertz ★★★★★ ()