URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 132762
[ Назад ]

Исходное сообщение
"Выпуск SBCL 2.4.1, реализации языка Common Lisp "

Отправлено opennews , 05-Фев-24 13:31 
Опубликован выпуск SBCL 2.4.1 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60554


Содержание

Сообщения в этом обсуждении
"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено zog , 05-Фев-24 13:31 
Ядро на этом языке реализовать можно?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 13:40 
Нужно!

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Шарп , 05-Фев-24 13:42 
>С целью оптимизации производительности убраны проверки границ для относительных смещений

Вы что, хотите CVE как в си?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:50 
safety в declare сунул и готово, это тебе не бондаж и дисциплина, а язык от людей и для людей

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 13:43 
((от (скобочек)) (рябит) (в (глазах)))

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:40 
Слабак!

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:49 
Так ты не на скобочки смотри. И вообще, для тебя придумали wisp.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 17:41 
А от unwrap() и закорючек не рябит?

Кстати, в схеме по стандарту разрешили смешивать () и []. В комоне как с этим?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:15 
Как только в стандарте появится — сразу же.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 20:52 
Прикручивается в несколько строчек кода через макросы чтения. Но это не нужно: зоопарк скобочек, вопреки бытующему мнению, снижает читаемость кода.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 21:23 
> зоопарк скобочек, вопреки бытующему мнению, снижает читаемость кода.

Чьему мнению? Лисперы не смотрят на скобочки https://spritely.institute/static/papers/scheme-primer.html#...

> In general, Scheme/Lisp programmers' editors do the work of managing parentheses for them, and most code is read by indentation rather than by the parenthetical grouping. In other words, Lisp programmers usually don't spend much time thinking about the parentheses at all.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 07-Фев-24 20:21 
А почему бы тогда не использовать табы?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 07-Фев-24 22:01 
> А почему бы тогда не использовать табы?

Причем тут табы? Без разницы, что использовать. Почему обычно используют 2 пробела, я не знаю. Видимо из-за большой вложенности и чтобы из-за этого не вылазить за границу максимальной длины строки. Больший отступ, конечно, читался бы лучше.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:27 
Есть 2 подхода к синтаксису ЯП:

1. Попытаться сделать его пригодным для работы в редакторе плоского текста (текст редактируется как последовательность строк). Чтобы как-то внятно разложить синтаксическое дерево в плоский текст, приходится жертвовать унификацией и структурным редактированием (оно все равно возможно, но усложнено и ограничено).

2. Представлять синтаксическую структуру программы явно и в унифицированном виде (Лисп). Для удобной работы с таким кодом нужен структурный редактор (paredit и подобные) — команды редактора позволяют манипулировать непосредственно структурой кода. Никто не считает скобки, вы просто создаете, объединяете, разделяете, перемещаете выражения — код практически становится осязаемым. Научившись работать с этим, возвращаться к п.1 уже не хочется.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 00:48 
Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее, чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 07-Фев-24 18:01 
> Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее,
> чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.

Так об этом и речь, но можно по-разному отобразить AST в текст и по-разному с ним работать: как с плоским текстом или прямо манипулировать деревом. Мало кто пробовал второй способ, но лисперы знают как это удобно, пока остальные продолжают недоумевать.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 07-Фев-24 20:28 
> пользоваться обычным ЯП куда удобнее, чем лиспом

Ой-ли? Это те самые обычные языки (Си, С++, Java, Rust и т.п.) с их премудрыми правилами разрешения венегрета шаблонов и матрешками макроподстановок?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 10:32 
Мне от знаков '$' рябит в некоторых язычках.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 13:59 
И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:07 
В ИИ.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:55 
Хорошая шутка, прямиком из 70-80-х.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Пользователь планеты Земля , 05-Фев-24 17:08 
на разработках 70-80-х держится весь интернет

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 17:30 
В том что сейчас называют ИИ интеллекта нет ни грамма, а лисповые игрушки 80-х это вообще не более чем шутка.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:37 
Как говорится, «as soon as it works, no one calls it AI anymore».

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено kusb , 08-Фев-24 17:15 
ChatGPT сам называет себя AI

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:16 
прошу прощения, в след. раз обязательно у тебя все вместе спросим куда нам наше время тратить

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Бывалый смузихлёб , 05-Фев-24 18:54 
> прошу
> все вместе спросим

для начала надо определиться сколько анонимов в одном анониме


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:19 
>Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?

Потому что не хотят выучить скобочки, потому и обещают годами выпилить GIL.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Bottle , 05-Фев-24 21:18 
Вот кстати, что забавно, GIL обходят самыми разными костылями: то запускают параллельно несколько интерпретаторов Python, то транспилируют код Python, то привязывают Сишные либы и теряют кроссплатформенность.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 23:01 
Но, ведь, наконец таки, решились выпилить в течение ближайших пяти лет.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:07 
> бесполезные и ненужные технологии, которым место в анналах истории?

И правда зачем нужны бесполезные дубы, если есть желуди?

https://github.com/gcc-mirror/gcc/blob/master/gcc/common.md


;; Common GCC machine description file, shared by all targets.
...
(define_constraint "V"
  "Matches a non-offsettable memory reference."
  (and (match_code "mem")
       (match_test "memory_address_addr_space_p (GET_MODE (op), XEXP (op, 0),
                         MEM_ADDR_SPACE (op))")
       (not (match_test "offsettable_nonstrict_memref_p (op)"))))

https://github.com/gcc-mirror/gcc/blob/master/gcc/match.pd

#if GIMPLE
/* Optimize (X + (X >> (prec - 1))) ^ (X >> (prec - 1)) into abs (X).  */
(simplify
(bit_xor:c (plus:c @0 (rshift@2 @0 INTEGER_CST@1)) @2)
(if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
      && !TYPE_UNSIGNED (TREE_TYPE (@0))
      && wi::to_widest (@1) == element_precision (TREE_TYPE (@0)) - 1)
  (abs @0)))
#endif


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:19 
Столлман лично писал?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 17:23 
Судя по гитхабу нигде оно не используется. Ну то есть тыщи репозиториев есть, но реально полезного кода считай что нет.
Язык чисто для образовательных целей.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 17:42 
> Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии

Хороший вопрос, но не в ту сторону, учитывая, что лисп появился в 60-х.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:17 
> И где оно используется?

Например, в менеджменте ресурсов.

> Зачем вообще люди тратят сотни и тысячи человеко-часов

Конкретно в этом случае потому, что хорошо платят.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ИмяХ , 05-Фев-24 19:06 
Расскажи автокадчикам , насколько лисп бесполезен.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 21:12 
В автокаде очень кхем... своеобразный диалект лиспа. Настолько, что мало кто даже из лисперов обрадовался бы возможности программировать на таком. Даже за деньги.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 21:05 
Например, в этом https://nyxt-browser.com/

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 08:39 
> И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?

зачем ты это сюда пишешь?
раз люди тратят время, значит видят смысл.
вот у них и поинтересуйся.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено sailorTheCat , 05-Фев-24 14:03 
Годно и нужно.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:10 
> Годно и нужно.

Но ведь новость не про JavaScript


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:19 
А JavaScript в машкод не компилируется, как и в образы.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:24 
> А JavaScript в машкод не компилируется

Just JIT


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:33 
То есть, не компилируется. А в райнтайме потихоньку то там, то сям застопорит программу, потом ещё раз застопорит, потом выльет неоптимизированную портянку вызовов функций к библиотеке движка... и никаких тебе бинарей на диске с асмовставками и заменой anytype-кода на прямую тасовку fixnum-ов в асме через объявления safety, type и speed в declare.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Дима из Крыма , 05-Фев-24 14:39 
Компилируемые языки по большей части уходят в прошлое. Останутся только в системном программировании, в совсем уж критических местах. Не верите? Сравните количество вакансий и оцените спрос рынка.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:19 
Common Lisp -- компилируемый язык так то

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Тот_ещё_аноним , 05-Фев-24 16:55 
Sbcl - компилирующий common lisp
Основная масса common lisp реализаций интерпретаторы или jit

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:40 
Основная масса - это какие? sbcl, cmucl, ccl, allegro, lispworks напрямую генерируют машинный код, ecl, clasp, gcl - через сишку,  abcl - в байткод jvm. Только clisp представляет из себя интерпретатор, да и тот интерпретирует байткод и имеет jit.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:21 
Нет уж.
Давай ты сравнишь, а мы послушаем доклад.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:41 
"Количество вакансий" и "спрос рынка" не с потолка берётся. И либо ты раб скиллбокса, либо сам пишешь проекты.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 17:59 
То что ты подразумеваешь (а подразумеваешь ты языки со статической типизацией) хоронят уже 20 лет, но только сейчас закопана динамическая - mypy, typescript и иже с ними не дадут соврать. А то что ты написал это вообще безграмотный бред, потому что языки от способа их исполнения никак не зависят. Возьми C и хочешь - интерпретируй, хочешь в байткод JVM компиль, хочешь в WASM, хочешь - в нативный. При этом и динамические языки все компилируемые, везде кроме питона JIT, а и питон к нему активно стремится, умея, те не менее, и компиляцию в нативный код (nuitka, pypy, cython). Ну и таки да, не знаю что мне должно сказать количество вакансий. Ну нужно много жс мaкак. Ещё курьеров, таксистов, дворников. Но идти-то надо на нормальном языке писать за 10х денег.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Бывалый смузихлёб , 05-Фев-24 19:08 
только есть вероятность что иная жс ма.кака как раз и будет получать те самые 10х денег
пока истинные ценители(тм) будут просиживать пыльные академические лавки ради всяких лиспов
почти как с бздями которые тоже якобы академики ваяли

по закапыванию динамической типизации - ну хз
парадоксально ли, но ощутимое количество "ит-специалистов" по итогу оказываются падкими на всякий инфомусор мак.аками, для которых достаточно опубликовать несколько статеек на хабре и каком-нибудь реддите-медиуме чтобы они чуть ли не повторяли описанные там догмы слово в слово. Патамушта эта в тренде

вот и с тайпскриптом примерно так получилось. От чего он героически защищает и избавляет - так никто и не понял. Только гомна прибавилось в лице крайне перегруженного синтаксиса и кратного увеличения объёмов писанины вперемешку с кривописанием для влезания в проверки в специфических случаях или исключениями конкретных проверок для конкретных строк( что само по себе "гениально" )
А ошибки - они никуда и не делись, равно как и целенаправленно созданные дыры. Внезапно оказалось, что типизация в принципе не избавляет от ошибок


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Прохожий , 06-Фев-24 11:20 
>парадоксально ли, но ощутимое количество "ит-специалистов" по итогу оказываются падкими на всякий инфомусор мак.аками, для которых достаточно опубликовать несколько статеек на хабре и каком-нибудь реддите-медиуме

Обычно (не всегда) подобные статьи пишутся очень и очень умными людьми. И в них много рациональных зёрен. Поэтому другие люди и берут их на вооружение. А можно их просто игнорировать и продолжать ходить по граблям. Каждому своё.

>Внезапно оказалось, что типизация в принципе не избавляет от ошибок

А кто говорит про все ошибки? Речь о том, что их количество желательно свести к минимуму, чтобы удешевить эксплуатацию ПО конечному пользователю. В этом весь смысл. Странно, что подобные банальные вещи надо ещё обсуждать.



"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 12:53 
>закопана динамическая - mypy, typescript и иже с ними не дадут соврать

Так дают же, anytype anytype-ом погоняет.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:34 
> А JavaScript в машкод не компилируется

а на лиспе нельзя модули для ядра писать


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:42 
Один чувак на нём драйвер написал.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:47 
На лиспе написали ОС и не одну.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 16:42 
> На лиспе написали ОС и не одну.

если бы было что-то стоящее я бы об этом знал


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 23:04 
Про Redox же знаешь наверняка? Но оно нестоящее.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Прохожий , 06-Фев-24 11:27 
Вполне себе стоящее для образовательных целей.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:08 
>  На лиспе написали ОС и не одну.

Простите, но эти поделия не достойны звания ОС...


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:48 
>нельзя

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


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ZloySergant , 05-Фев-24 16:03 
>И тут мы подходим к тому, что каждый вменяемый программист должен уметь присобачить свой язык к си.

TCL (немного протух, но собрать после пары ящиков пива - можно), ECL (эти долбоклюи на кресты решили переехать), CCL (ябблы - то бишь дуподрюки, но не точно).


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 12:48 
Зато можно написать само ядро
https://github.com/froggey/Mezzano

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ZloySergant , 05-Фев-24 16:16 
> А JavaScript в машкод не компилируется, как и в образы.

SBCL как-бы тоже (только в "образ"). Даже tree shacker'а нет. За этим - к ECL и CCL.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:38 
JavaScript компилируется в Webassembly, который по сути машкод для довольно специфичной машины.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено C00l_ni66a , 05-Фев-24 20:02 
>который по сути машкод для довольно специфичной машины

Не просто "специфичной", а "несуществующей в природе".


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:20 
> Ускорена работа цикла "(LOOP FOR X IN (REVERSE LIST) ...)", который теперь использует меньше cons-ов.

А в принципе в функциональных языках замену map на map! компилятор умеет делать?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 22:31 
Сабж не является функциональным, но мультипарадигменным.
SBCL умеет только раскрывать map'ы в циклы.  "Сплюснуть" цепочку map/reduce до однопроходного цикла не может (вдруг у тебя там побочный эффект, тогда оптимизация сломает логику).
Но есть интересная библиотека series, она может. https://github.com/tokenrove/series/blob/master/s-doc.txt

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 14:57 
А где крупный специалист по Lisp-у ЛОР-овец lovesan?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:20 
В чём преимущество записи выражений в польской нотации. Типа: + 2 3

Для типично математический выражений никакого преимущества перед традиционной формой нет. Я по крайней мере не вижу.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено svr , 05-Фев-24 15:29 
Код является AST

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено sailorTheCat , 05-Фев-24 15:30 
> Для типично математический выражений

Это такие, которые обычно занимают 0.0001% кода?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:31 
https://en.wikipedia.org/wiki/S-expression

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:43 
Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения. Вообще проще программно работать с такой записью. А вот в случае с классической матетматикой на бумаге, наверное, нет смысла на такое переучиваться. Хотя некоторые разделы математики такую запись используют.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:47 
>Проще парсить, проще понимать структуру выражения.

Особенно если вставлять переводы строк, большие формулы становятся понятнее.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:57 
> Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения.

Да, просто парсинг перекладывается на оператора ЭВМ. Ну… если вспомнить, на каком убогом железе она в основном использовалась, то оно и понятно.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 16:16 
Это с каких пор процессор, ориентированный на язык, убогим железом является?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:02 
С тех пор как языков много, а конкретно тот на который он ориентирван никому нахрен не сдался.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:46 
>Для типично математический выражений никакого преимущества перед традиционной формой нет

Прикол в том, что:
1. Дело не в польской нотации, а в AST. Этот AST можно превратить в вызовы SIMD. На том же лиспе.
2. Математические операции в лиспе не являются операторами, они являются функциями. Со всеми вытекающими, навроде отправки в функции высшего порядка, неполного применения и так далее.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:03 
Ну-ка, а расскажи нам скорее в каком языке операторы не являются функциями?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено n00by , 06-Фев-24 07:25 
В Си операторы не являются функциями. Особенно comma operator.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 09:55 
почти во всех

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ZloySergant , 05-Фев-24 16:07 
>В чём преимущество записи выражений в польской нотации. Типа: + 2 3

В стандартизации выражений. Первой всегда идёт функция, потом значения. Отсюда и масса скобочек. Меньше шансов, что какой-нибудь альтернативно одаренный перепутает "=" и "==". В коде сразу видно будет.

З.Ы. Поэтому, кстати, LOOP я недолюбливаю - выбивается за концепцию.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 17:04 
Кстати говоря, классическая префиксная нотация может писаться вообще без скобок

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ZloySergant , 06-Фев-24 00:24 
> Кстати говоря, классическая префиксная нотация может писаться вообще без скобок

Может, но блоки кода определять сложнее.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:23 
А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной инструкцией поболе стандартизированы, почему лисп лучше их?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено ZloySergant , 06-Фев-24 00:28 
> А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной
> инструкцией поболе стандартизированы, почему лисп лучше их?

Brainfuck - некорректный пример. Сравнивать надо с чем-нибудь высокого уровня (хотя тоже будет не совсем корректно).

З.Ы. Да, забыл совсем, как очевединое. Такая стандартизация позволяет составить произвольный список переменных и их обработать, а не насиловать себе мозг. К примеру, в функции "сложения" указать через REST произвольное количество входящих данных.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 17:47 
Не нужно вводить понятие приоритета и ассоциативности, разбирать и вычислить выражение можно за один проход, достаточно просто стэка. Это использовалось раньше во многих физических калькуляторах. А по поводу программ: man dc. Его, кстати, использует bc.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:09 
> Не нужно вводить понятие приоритета и ассоциативности

Но его нужно вводить, потому что это правила разбора математических выражений. Если на языке решаются реальные задачи, включающие математику, он обязан это делать. Если он это не далает, значит он не язык, а занимательная шутка типа брейнфака, не имеющая отношения к программированию.

> разбирать и вычислить выражение можно за один проход, достаточно просто стэка

Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в 10 ни в 100500 проходов программу распарсить, но не будем использовать её возможности, а заставить людей ковыряться в yблюдском формате.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 19:21 
>> Не нужно вводить понятие приоритета и ассоциативности
> Но его нужно вводить, потому что это правила разбора математических выражений. Если
> на языке решаются реальные задачи, включающие математику, он обязан это делать.

В префиксной нотации скобки не обязательны если арность фиксирована. Конкретно в лиспе скобки - это вызов процедуры, поэтому запись (+ * 1 2 3) просто некорректна, потому что * - это процедура и нужно писать так (+ (* 1 2) 3). Таким образом, скобки однозначно определяют порядок вычисления в мат выражении.

>> разбирать и вычислить выражение можно за один проход, достаточно просто стэка
> Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в
> 10 ни в 100500 проходов программу распарсить, но не будем использовать
> её возможности

Можешь дальше писать на жс под электрон и требовать 16Гб памяти под ничего неделание.  

> а заставить людей ковыряться в yблюдском формате.

Ты просто всю жизнь использовал инфиксную запись. Тебе, например, точно также будет неудобно писать справа налево, а кто-то так пишет с рождения.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 09:49 
>>потому что * - это процедура

(setf * 10)
(print (+ * 1 2 3))
(print (* * 10))


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 13:00 
А ты зачем за процедурой в неймспейс данных лезешь?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 06-Фев-24 17:00 
>>>потому что * - это процедура
> (setf * 10)
> (print (+ * 1 2 3))
> (print (* * 10))

Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

> (print (* * 10))

Вот это в Scheme работать не будет, т.к. ты пытаешься вызвать процедуру 10, а это не процедура.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 19:17 
> Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

Намёк на особенности lisp-2. Что в лиспе разные пространства имён для разных сущностей.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:23 
> потому что это правила разбора математических выражений.

Так в такой записи эти правила не нужны, про ассоциативность

> а заставить людей ковыряться в yблюдском формате

Да уж не накручивайте, писал на лиспе какое-то время - привыкаешь довольно быстро. Бонусом ты сразу видишь в таком выражении, что в каком порядке выполняется. Надо только начать, оно только выглядит страшно по началу


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 19:55 
> оно только выглядит страшно по началу

Еще любят приводить примеры с двумя-тремя аргументами. В инфиксной записи сложные выражения читаются ничуть не проще. Во многих кодстайлах даже разрешено добавлять скобки для читабельности и чтобы не надо было вспоминать приоритеты.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 04:52 
Именно так, да. В сложной формуле с кучей + и *, ещё и если всратые пробелы, легко запутаться, кто где первее выполняется. Уж во всяком случае одним взглядом не распарсишь

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено n00by , 06-Фев-24 19:12 
Транслятор Си на сложных выражениях выдаёт предупреждение и просит добавить скобки.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Анонизмус , 05-Фев-24 18:57 
> В чём преимущество записи выражений в польской нотации. Типа: + 2 3

(+ 2 3 4)


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Минона , 05-Фев-24 15:33 
> На платформе FreeBSD реализована компоновка с libpthread и отключена рандомизация адресного пространства (ASLR).

А чем фряха провинилась?


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 00:41 
Вам многопоточность дали, а вы недовольны. А рандомизация..., значит, работает плохо/не совсем как нужно.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 15:52 
Документацию на VOP бы...

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:05 
Почитаешь уринотерапию что лисп и простой и быстрый и безопасный, так почему всё на Rust переписывают то ?

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:10 
> Почитаешь уринотерапию что лисп и простой и быстрый и безопасный

Это просто диды с недержанием дезу распространяют.
Был бы он хорош - на нем бы писали многие и много. А в реальности кроме полутора легаси проектов и пары васяноподелий ничего толкового нет.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:24 
> Был бы он хорош - на нем бы писали многие и много

Выигрывают не лучшие, а с самым хорошим маркетингом


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 18:21 
Он не простой, не быстрый и не безопасный, даже упоротые фанатики лиспа вам такого не скажут. Они продвигают свою мазохистскую философию, суть которой в том что работу машины нужно переложить на человека, при этом доставив емё максимальную боль. Нет, не смей взять и написать математическое выражение, строй RPN стеки в голове, зато машинка распарсит код в один проход.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено _kp , 05-Фев-24 18:58 
>> работу машины нужно переложить на человека, при этом доставив ему максимальную боль.

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


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Бывалый смузихлёб , 05-Фев-24 19:13 
> Но, почему сейчас то, не добавляют более эргономичные языковые конструкции?

Потому что получится один из современных ЯП, а не лисп



"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 19:24 
Так математические выражения реально удобнее писать в польской нотации, дело тут даже не в простоте парсинга. Их понимать потом проще, когда код читаешь

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 20:25 
Непонятно для кого и для чего созданы все эти 100500 языков, связки Python + C хватает для всего.

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 05-Фев-24 20:59 
Кому-то и одного 1С хватает. Могу только пособолезновать

"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 21:28 
> Непонятно для кого и для чего созданы все эти 100500 языков, связки
> Python + C хватает для всего.

Лисп создан в начале 60-х. Теперь посмотри когда создан Python и другие языки и задай свой вопрос их создателям.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Вы забыли заполнить поле Name , 05-Фев-24 21:29 
> Непонятно для кого и для чего созданы все эти 100500 языков, связки
> Python + C хватает для всего.

И вообще Lisp не люди создали

> It is an established fact that John McCarthy shared alien tech with the world in 1958 when he introduced us to Lisp.


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 06-Фев-24 06:54 
>John McCarthy shared alien tech

Джон Маккарти "расшарил" людям инопланетную технологию. Возрадуйтесь люди!


"Выпуск SBCL 2.4.1, реализации языка Common Lisp "
Отправлено Аноним , 07-Фев-24 21:57 
Десятое правило Гринспена:
Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.