Вы видите копию треда, сохраненную 27 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
{Основные диалекты}
:: Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и частичный их вывод в некоторых реализациях.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
- свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (LLVM; ориентирован на интероп с C++), ABCL (байт-код JVM), CMUCL, GCL.
- коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl
:: Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Наиболее практичными реализациями являются GNU Guile и Chicken Scheme.
:: Racket - развитие PLT Scheme. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket, Scheme стандартов r5rs и r6rs).
:: Clojure - cм. соседний тред (ОПу почившего надоедло бампать, шапка здесь: https://rentry.co/9ve9d )
{Scheme}
::: Учебники
- SICP :: https://mitpress.mit.edu/sites/default/files/sicp/index.html
- The Scheme Programming Language (R6RS) :: https://www.scheme.com/tspl3
- Практика :: https://exercism.io/my/tracks/scheme
::: Документация
- http://web.mit.edu/scheme_v9.2/doc/index.html
::: Остальное
- https://github.com/theodesp/awesome-scheme
- https://github.com/schemedoc/awesome-scheme
{Racket}
::: Учебники
- HtDP :: https://www.htdp.org/
- Racket Guide :: https://docs.racket-lang.org/guide/index.html
- Beautiful Racket: https://beautifulracket.com/
- Остальные :: https://racket-lang.org/books.html
::: Документация
- https://docs.racket-lang.org/
::: Библиотеки
- https://github.com/avelino/awesome-racket
- https://pkgs.racket-lang.org/
::: Среда разработки
- DrRacket :: https://docs.racket-lang.org/drracket/
- Online :: https://www.jdoodle.com/execute-racket-online/
{Common Lisp}
::: Учебники
- Cookbook :: https://lispcookbook.github.io/cl-cookbook/
- PCL :: http://lisper.ru/pcl/
- OnLisp :: http://www.paulgraham.com/onlisptext.html
::: Документация
- http://www.lispworks.com/documentation/HyperSpec/Front/index.htm
::: Библиотеки
- https://github.com/CodyReichert/awesome-cl
- https://ultralisp.org/
- https://lisp-journey.gitlab.io/blog/state-of-the-common-lisp-ecosystem-2020/
::: Среда разработки
- Portacle :: https://portacle.github.io/
- Остальные :: https://lispcookbook.github.io/cl-cookbook/editor-support.html
Предыдущий тред: >>1961770 (OP)
Нет, я не гепатопротектор с желчегонным и холелитолитическим действием.
>>2256608 →
Наличие механизма эксплицитной передачи не отрицает наличие механизма имплицитной передачи, наличие которого и определяет ООП.
Бамп вопросу
нахуй ты бампаешь, шизло?
(defun mirror (s) (equal s (reverse s)))
Работает в CL, но
(defun mirror (s) (eq? s (reverse s)))
не работает в Scheme?
И оно все равно не работает так, как надо. Это именно поэтому люди не любят схему, да?
Попробуй прочитать документацию или, типа, хотя бы поверхностно изучить язык, на котором пишешь, перед тем как высираться в тред.
Просто интересно, дохуя читаю что эффективность труда разработчика увеличивается, но не пойму за счет чего это достигается. И насколько эффективность увеличивается? на 5%? 10%?
Спроси в треде эффективных менеджеров
> Кто-нибудь вообще пишет что-то серьезное на лиспах/кложе?
Основные потребители - nubank и walmart.
В наса тоже что-то там писали
> В сбере чет на лиспах есть.
У нас несколько команд датасаентистов, пишут свои скрипты в том числе на кложуре. Но это не серьёзно, у них определённых стандартов нет, они и на хаскелле что-то делают.
Видел вакансия была на кложу связанная с обработкой данных + фуллстэк (бэк, фронт) на clojure. Мб в качестве эксперимента замутили.
На гошечке, точно не помню, но несколько мегабайт простейшая апиха ing/pong
Да, потому что под капотом жирная прожорливая жаба.
языки настолько мёртвые, что даже за 2 часа не прибежали оптимизаторы командной строки и не обоссали тебя
хотя чего я удивляюсь, если тред по кложуре тупо утонул нахуй
>Просто интересно, дохуя читаю что эффективность труда разработчика увеличивается, но не пойму за счет чего это достигается.
Я вообще мимопроходил и не профессиАНАЛьно на лиспе пишу, но могу кое-что высрать.
Во-первых, сама мощь языка. Считается, что лисп мощнее любого другого языка. С другой стороны, это же считают его проклятьем.
Во-вторых, особенность разработки. Bottom-up проектирование и старт с того, что разрабатываешь не систему функций/объектов, а сразу DSL.
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design#Computer_science
https://ru.wikipedia.org/wiki/Языково-ориентированное_программирование
>Это именно поэтому люди не любят схему, да?
Олсо, схему не любят за зоопарк реализаций (каждая со своей системой модулей), скудный стандарт, даже без циклов (что на самом деле плюс, если посмотреть на предназначение схемы), и... и вроде бы всё? Плюсов у схемы очень много. Особенно она хороша, если вместо богомерзкого lua использовать её как встроенный скриптовый язык.
Ну короче, опять же, звучит как то, для чего нужны конкретные примеры или попробовать самому.
Просто при написании hello world'ов, даже сложных, не очень прочувствуешь как оно, пока реальные/сложные многоступенчатые задачи не будешь решать. Чувство только тогда приходит.
>или попробовать самому
Тока так. Или ты захотел модных статеек в медиуме/хабре про особенности разработки на МЁРТВОМ ЯЗЫКЕ? Пфф. Он же не расхайпаный, никаких курсов по нему не втюхаешь, миллионов строк легаси на нём нет, никакой корпорации за ним не стоит.
А ещё, как говорил мой препод в универе: его сложно учить, потому что встроенных символов порядка 1-2к штук, хотя синтаксиса-то и нет никакого. (Когда я пишу на крестах, то изредка залезаю на cplusplus.com, но когда пишу на CL - у меня всегда распечатанный quick reference рядом с клавой) Сложно учить => не будет тучи хомячков/вкатунов => не продашь инфоцыганство своё. Поэтому питон на коне. А лисп, как и куча других языков - в луже.
Ну вроде он не совсем мертв. Всё не так однозначно на самом деле.
Прежде чем учить его чуть погуглил, получается что на стак оверфлоу он в топе языков для пет. проектов. Новые большие проекты таки появляются (тот же roam и logseq) которым всего несколько лет.
По количеству проектов на ГХ он несильно отстаёт от гошечки. А гошечка сейчас расхайплена шопиздец.
По популярности среди нишевых языков уступает разве что расту. Короче, какая-то жизнь определенно есть.
А так, в цело, да, ожидал статей на медиуме/хабре. В целом такие статьи в 2021 появлялись. Какие-то туториалы в ютабе есть. Короче, всё плохо, но не катастрофически плохо.
Я вот думаю об этом в таком ключе, что в таких языках где мало контента можно быстро стать звездой, если пилить какой-то типикал контент для даунов, который сейчас пилят для питона килотоннами. Конкуренция ниже. Можно сделать имя.
Хуй знает замчем я тут высрался
>roam и logseq
СУКА! Самое главное, что прямо сейчас я тоже пишу своего рода прогу-ассистента, чтобы все свои писульки и другую инфу в одном месте хранить. Но моя очевидно лучше. /sarcasm[/spoiler]
Ниет. Это будет моя прелесть. Я долго думал, чего я хочу, начав просто с "Я ХАЧУ НАПИСАТЬ СВОЙ ТЕКСТОВЫЙ РЕДАКТОР!!111", и закончив вот этой хуетой. Если ты назовёшь навсткидку тот, который
- Позволит хранить информацию в унифицированном, удобоваримом виде и делать запросы любой сложности по ним
- Позволит создавать свой интерфейс для удобного ввода таких данных, средними партиями по 10-50 штук в день
- Не будет зависеть от интернета, не SaaS
- Не будет стоить ничего
Тогда я подумаю.
logseq.
org/md файлы на харде. Можно добавить автосейв гитом, пушить в гитхаб и создавать из записей "сайт" типа https://logseq.com/?spa=true на github pages. Хули, это поделие из электрона - обычный жабаскрипт.
> - Позволит создавать свой интерфейс для удобного ввода таких данных, средними партиями по 10-50 штук в день
вот эту хуйню только не понял. Там есть возможность создавать шаблоны.
> - Позволит хранить информацию в унифицированном, удобоваримом виде и делать запросы любой сложности по ним
org/md
> - Не будет зависеть от интернета, не SaaS
org/md локально
> - Не будет стоить ничего
сейчас не стоит. Когда будут серверные фичи типа совместной работы, возможности хранения в облаке, etc тогда будет подписка. Но основная офлайновая версия по заявлению разрабов навсегда останется бесплатной
Алсо, написан на clojurescript, запросы пишутся также на кложе. Там либа какая-то datagrid что ли называется, но вроде как распространенная в среде clojure'истов.
Есть возможность писать плагины свои. Мб как раз то, что тебе нужно, чтобы "менять интерфейс".
Я бы ещё добавил простой и легковесный в требования. Как vim, ага.
>>259279
>вот эту хуйню только не понял. Там есть возможность создавать шаблоны.
В этой хуйне весь прикол. Всё остальное я мог получить чисто заменив себе блокнот sqlite3 клиентом.
md хуета из под коня, до обработки.
org хорош, но не в том, что мне нужно. Хотя его тоже юзаю, но надеюсь прекратить.
Считай что мне нужен конструктор для сборки crud приложений. Так будет лучше. Недавно в нюфаг-треде высирался на тему.
Смотри:
Энтрилевел: обычные заметки. С таким хоть блокнот и папочки на диске справится.
Адвансед: хочу, например, инфу с чеков сохранять. Структурировано. Это точно БД, но каждый раз вводить через insert into заебёшься. Лучше, если был бы доступ к содержимому чеков через QR, но сервис закрыли для физлиц. Поэтому мне нужно сделать некоторую обложку для ввода. GUI тяжело, незнакомо и долго, поэтому я хочу, чтобы можно было CLI-based вводить поля строк в табличку.
Мастери: появляется у меня новая таска. К примеру, после учёта чеков, я захотел ещё вес скинуть. В продукты добавится ещё их калорийная ценность. Как быстра, удобно и без затрат соединить старые данные с новыми (чтобы можно было всякую хуйню делать, типа посчитать сколько один грамм белка в рублях стоит), а также обновить "вводилку" данных и добавить новые запросы к приложению?
Типа того.
>создавать из записей "сайт"
А можно без браузера? Аллергия на электрон и браузерные движки, когда я хочу легковесное. Кожа струпьями покрывается. Фанатик, евангелист, верун в терминалы 80x25.
notion.so
только попробуй высрись про независимость от онлайна, это сразу задетектирует в тебе мамкиного анархиста
> orgmode
org-ql. Но инсертов там нет, только вьюхи.
>>259321
> Аллергия на электрон и браузерные движки
Это всё предрассудки. Браузер тебе автоматически гарантирует кросплатформенность. Фронт в вебе развивается семимильными шагами по сравнению со всем остальным миром десктопа. По количеству готовых решений в т.ч. Так посмотреть на все эти инструменты: logseq, typora, org roam - в них дохуя общего. Думаю за основу взяты одни и те же библиотеки.
Короче я бы на твоем месте начал себя перебарывать. Консоль это не только неудобно, но еще и уёбищно выглядит, и порог входа высокий, и дохуя телодвижений чтобы что-то сделать.
А так да, как анон уже сказал
>>259325
> notion.so
Только я как раз ради оффлайна использую logseq. Я за пяток лет уже несколько софтин сменил для заметок, и лучше бы чтобы все они были в виде обычного текста.
Алсо, я бы тебе посоветовал привести свои дела в порядок уже сейчас, т.к. то, чем ты занимаешься можно назвать прокрастинацией, типа "вот щас напишу свою тулзу и вот тогда заживу по-настоящему-то!
>Это всё предрассудки.
Ниет.
Вот видите, анонасы, >>259359 >>259360, я вам расписал требования, а ваши "тонны готовых решений" - это жертвование тем или иным требованием из списка. А мне на деле нравится пилить мою хуету, ещё и лиспом учусь обращатся.
И notion пробовал (интерфейс переусложнён кстати) и прочее. Когда на моём старом компе с 2 ГИГАБАЙТАМИ СУКА оперативки отказались одновременно работать лиса и какое-то приложение на электроне, повиснув через час, я просто нахуй выпал.
Вы держите в фокусе немного, что мне нужно идеально подходящее под меня приложение. Я много чё не умею. Заставлять на деревьях деньги расти, например, не умею. Но я умею программировать. Использовать какую-то подзалупную хуету, на электроне ли, SaaSную ли для меня - это будто сапожнику быть без сапог.
>Консоль это не только неудобно, но еще и уёбищно выглядит, и порог входа высокий, и дохуя телодвижений чтобы что-то сделать.
Кстати, с порогом входа согласен, а вот с уёбищностью и "дохуя телодвижений" - нет. В консоли ты меньше телодвижений делаешь, чем если бы в гуи хуетой занимался.
Аргумент: ffmpeg-гуи, которое обеспечивает ту же гибкость где?
> это жертвование тем или иным требованием из списка
Надо быть и оставаться гибким, чел. И не высекать свои требования в камне, а думать как еще можно решить свои проблемы и каким инструментом.
В принципе, что ты пилишь свою какую-то хуету это неплохо. Тоже способ решениия. Вот только если тебя вдруг заебет её пилить, то твои проблемы, которые ждали этой софтины, останутся нерешенными.
>>259391
Только чтобы что-то быстро в консоли научиться делать нужно приложить много усилий. А в гуе часто бывает интуитивно накликать мышкой.
Недавно думал об этом, например, пока осваиваешь какой-нибудь абстрактный vim или emacs, чтобы он приносил тебе в будущем от этого профит (принесет ли), за это время можно освоить кучу других инструментов и приобрести кучу других навыков. Think about it.
>профит (принесет ли)
Vim принёс. Я одновременно с ним слепой метод ввода учил. Охуенно получилось. До сих пор юзаю его + сборку из bash/cmake + gdb при отладке. Иногда в valgrind приходится залезть. Но ещё ни разу не пожалел, что не пишу в VS. Тормозящее говно. Конечно, когда на работе требуют её, я буду писать там. И сразу спрошу про железо, которое хорошо бы им предоставить.
>Только чтобы что-то быстро в консоли научиться делать нужно приложить много усилий.
Но заметь, я и не представляю свой инструмент, как крутое, хайповое приложение. Если я буду писать мануал, то в первой же строке напишу, что это программируемое приложение для заметок (на деле вообще две либы лисповых вышли, но это детали) и попрошу непрограммистов съебаться по-хорошему.
А вообще я делаю для себя и могу делать сколь угодно усложнённым для взгляда со стороны. Главное: чтобы это было эргономичным для меня и экономило моё время.
>>259396
>Надо быть и оставаться гибким, чел. И не высекать свои требования в камне
Ой, блядь, не начинай. Я всю жизнь гибкий. Всем нужно от тебя, чтобы ты был "гибким", потому что у них своих запросов дохуя. Написал же, что программирование - единственное, что я прямо хорошо умею делать. Везде, в каждой другой области, мне говорят ДАВАЙ КОМПРОМИСС @ ЛУЧШЕЕ ВРАГ ХОРОШЕГО. А здесь? Здесь я могу, единственный раз в своей жизни не принимать компромиссов. Юзеров кроме меня нет. Разработчиков кроме меня нет. Финансирования, кроме моего времени нет.
Ты тут сказал что-то про то, что мои дела все пропадут и "ай-ай-ай, торопись, бери готовенькое, тёпленькое"? Я мог дела делать и до того, как-то прожил же? Не умер вроде. Но с этой штукой я смогу делать больше и проще.
Это же жвм, по-твоему 80мб - это много для самой навороченной серверной вм (с запущенной лисп-машиной внутри)?
Можешь попробовать bb/joker/planck, если хочешь чего-то более легкого, чем полноценная жвм.
> 10.6 MiB + 10.0 KiB = 10.6 MiBjoker
>>258915
Нормальные люди как бы съебали с харкача давно не дежурят в треде, в отличие от школьников привет.
>миллионов строк легаси на нём нет
Есть же, в т.ч. в опенсорсе.
> никакой корпорации за ним не стоит.
Ну нюбанк - это типа нашего сбера, так что типа стоит.
>В этой хуйне весь прикол.
Так в роам\логсике же как раз и можно без задней мысли захуячивать свой кложекод в документы, чтобы делать кастомные отображалки. Тебе же это и нужно? А-ля org-babel\jupiter-notebook
>Считай что мне нужен конструктор для сборки crud приложений.
Хотя конкретно этим занимается тот чувак из hyperfiddle, емнип роамовцы как раз частично с него слизали эту фичу. Вот у него там чисто конструктор крудов, захерачил датаграф - оно тебе построило приложение. Вроде еще были пару конкурентов кстати
>Короче я бы на твоем месте начал себя перебарывать.
Нет, пусть делает, идея-то интересная.
Электронодебилы ненужны, кстати.
Да есть там один в лиспочате, пилит себе бота-помощника на CL.
>hyperfiddle
Прикольно, и сразу в гуй. Жаль что на кложуре и под клиент-сервис через веб заточено.
>>259440
>роам\логсике
Text-based же. Даже в чистом орге есть только пропертисы. Ближе всего к этому был notion, они реально предлагают свою бд строить. Один из вдохновителей моей говноподелки.
> org-babel\jupiter-notebook
Близко, но я хочу абстрактный юзерспейс отделить от кода отображения (конфигспейса). Ноутбуки сам на работе юзал, так как с датасаентистами работаю, но там все кишки наружу торчат. И ещё не видел, как туда можно добавить какие-либо поля для ввода по красивому.
>Жаль что на кложуре
А на чем еще? Это едиственный лисп-образный язык, на котором имеет смысл что-то писать.<sratch>
>и под клиент-сервис через веб заточено
Ну вот сейчас Никитос запилит нам свою десктопную гуелибу и все эти вебы с электронами уедут на помойку истории!11
>>259453
>Text-based же.
Нет, у роама (или одного из его клонов) есть возможность встраивать произвольные виджеты на кложе, инфа 100%. Я не шароебился особо, но ты полуркай, раз уж интересуешься этой темой.
>Близко, но я хочу абстрактный юзерспейс отделить от кода отображения (конфигспейса).
Типа смысл в том, что кабанчики должны скриптовать, а юзеры потом юзать? Я тогда опять запутался, я думал тебе наоборот нужно хуяк-хуяк и добавить новый гуй прямо тут же.
>А на чем еще? Это едиственный лисп-образный язык, на котором имеет смысл что-то писать.
Был у меня знакомый эмбеддщик в универе, который за кложуру топил. Джава не нужна, в любом виде. Поэтому КАМОН ШЕПЕЛЯВО и только он.
>Ну вот сейчас Никитос запилит нам свою десктопную гуелибу и все эти вебы с электронами уедут на помойку истории!11
Ниет. Я кекал уже тогда, когда нода стала мейнстримом, а не хтоническим высером, над которым все потешаются. Но это бэкэнд, там можно хоть дрочить вприсядку. Однако, когда такое пихают юзеру, приговаривая: "Вот тебе охуенный гуй, мы быстренька состряпали. Ах да, совсем забыл, минимум 8 гб рам. Ненуачо 2к20+ на дворе, уже пора бы."
Это... просто пиздец. Всё ради денюшек, скорости разработки. А юзеры проголосовать ногами не могут, потому что ради толики комфорта всё своё самоуважение в жопу себе засунут. Или вообще неграмотные и не понимают, почему ВОТЬЕТО КРАСИВЕНЬКОЕ СВИСТОПЕРДЕЛИСТОЕ - это пиздец ебаный, хтонический шоггот.
>Нет, у роама
Ты не понял. Не на таблицах разномастных данных, а на плейнтексте основано. Мне бы хоть какую-то структурность жи. Может быть это мой заёб, согласен, но это для того, чтобы можно было запросы изъёбистые делать.
>Я тогда опять запутался
Кабанчиков и юзеров нет. Юзер и конфиг пишет, и юзает.
Но конфиг/скрипт он пишет один раз, а потом тот ему на глаза не попадается.
Я не хочу видеть кишки. Уже пользовался полусырыми штуками собственного производства. Когда внутренности торчат, лишняя когнитивная нагрузка на мозг падает.
> Ты не понял. Не на таблицах разномастных данных, а на плейнтексте основано. Мне бы хоть какую-то структурность жи. Может быть это мой заёб, согласен, но это для того, чтобы можно было запросы изъёбистые делать.
logseq хоть и file-based, но очевидно в нём есть своя БД с поисковыми индексами, чтобы каждый раз файл не приходилось перечитывать, т.к. не эффективно.
И как анон выше говорил, этот как раз в нём можно на кложе виджеты писать.
Но в целом, думаю, тебе уже похуй на существующие инструменты, хочется своё запилить, по фану. Ебош, хули.
>Джава не нужна, в любом виде.
Нужна. Только джава, только стабильность! Стабильность хардкор интерпрайс!
К тому же кложуру можно употреблять и без джавы же.
>Это... просто пиздец. Всё ради денюшек, скорости разработки.
На самом деле дело даже не в этом, а просто в том, что тут так принято так модно. На зарплату одного жс-хипстера можно было бы нанять трех крестовых мужиков, которые бы состряпали гуй на кутях. Да, дольше, да, с сегфолтами, но все же. Но раз модно, значит так и надо же.
>Не на таблицах разномастных данных, а на плейнтексте основано.
Ну по таблицам не скажу, но вообще-то у них там граф-дб, а не просто блобы текста. Но видимо немного не то, что тебе хочется.
>Но конфиг/скрипт он пишет один раз, а потом тот ему на глаза не попадается.
Хм, ну хуй знает. Так тогда бери да пиши. Я-то думал фишка именно в том, что как ты выше описал, вот пришла в голову мысль калории там посчитать или что - ты парой строчек не выходя из приложения запилил новую формочку. А если конфиг отдельно, приложуха отдельно, ну тогда просто берешь да пишешь обычный код, вот и все.
Ну в любом случае ебош, присоединюсь к анону выше.
> Ну вот сейчас Никитос запилит нам свою десктопную гуелибу
Я так и не понял, на чём он её пилить собрался, на голой жабке чтоле?
Алсо фон у него в блоге пиздец конечно, каждый раз кровавыми глазами плачу.
Ну сама гугловая либа на крестах, жмвовский враппер на джаве, менеджер окон тоже на джаве, нужен теперь реакт\редукс рефрейм\рерюм на кложе. Ну может какие-то базовые компоненты будут на джаве, я вообще без понятия как и что он там задумывал.
Мне всегда казалось, что это такой троллинг, типа ЯДИЗАЙНЕРЯТАКВИЖУ. Переключалка в темный режим как бы намекает.
Вот я бы конечно хотел писать гуи на шепелявых. Но вот пользоваться ими?.. Ну, типа, ладно там иде. Но вот какие-то повседневные мелкие приложухи? Это бы сработало, если бы у нас был единый десктоп+рантайм а-ля имакс, под который мы бы писали свои приложухи в виде функций. Но камон, одному человеку это сделать нереально, хоть какая там у тебя алиен технолоджи. А запускать под каждую отдельную свистоперделку свой процесс?..
Типа, голый репл на жвм - это сразу сотка мегабайт памяти. У камонлишпа то же самое. Можно взять какую-нибудь ту-зе-метал схемку, ну или тот же гуайл ибо он СТАНДАРТЕН!, но смысл? Можно конечно, но сперва придется туда датаскрип\кложестдлиб портануть. Ок, можно скомпилить в жс - но блядь, это та же самая сотка памяти на процесс. Ну можно взять кастомный жс-рантайм, как у гномосеков, допустим. Но он-то хочет на ские и жавских биндингах делать! Ну ок, остается только грааль.
Но блядь, грааль решает проблему с быстрым запуском, это да. Но он все еще тащит с каждым экзешником пол-жвм (ну, в смятку, но жвм же). На диске он занимает под сотку. В памяти - полсотки (на бабашку смотрю). Это же все равно дохуя.
Я хз, как решить эту проблему. Кроме как использовать гошные\луашные диалекты кложи, но это же хуйня и не то. Либо ждать, что грааль наколдуют так, что он станет тощее на порядок. Ну типа, это конечно все еще лучше электрона, и в принципе неплохой такой миддл граунд между пользователем и разработчиком... Но хуй знает.
Че думаете, пацаны?
С последним релизом в 2009
Я имел в виду анстейбл sbcl, а не анстейбл профиль целиком. Смотри, как можно было:
$ /etc/portage/package.accept_keywords/sbcl
dev-lisp/sbcl
В том-то и дело, что я анлочил анстейбл по мере надобности и мне это выебало все зависимости нахуй. Я тогда обновится нормально не смог, но со сменой профиля появлялся PIE, поэтому всё равно была фулл рекомпиляция и достаточно было снести анстейбл-онли пакеты. Анстейбл либо полный на систему, либо никакого. И живёшь почти без забот.
2.1.11
В любом случае, кто в 2022 станет считать эти 40-100мб, когда один лишь хелловорлд на гтк3 сжирает чуть больше 50мб? И это ещё считается легковесным решением, про дрискорды и прочее говно на электроне я вообще молчу.
https://gist.github.com/burtonsamograd/f08f561264ff94391300
>В любом случае, кто в 2022 станет считать эти 40-100мб
Я\Мы любой нормальный человек
Репл gjs - 17мб
Хелловорлд - 20мб (https://gjs-tutorial.readthedocs.io/en/latest/introduction.html)
Хелловорлд на сишке - 11мб
>>261144
Но с другой стороны тонский у себя в блоге позиционирует это именно как альтернативу электрону. Ну тогда 100мб - это конечно легковесно.
>Репл gjs - 17мб
Ты про размер бинарника или что?
30мб оперативы он жрёт. Всего на 10 меньше, чем у жирнющего sbcl.
>Хелловорлд - 20мб
Тот же вопрос. gtk3-demo-application, который на сишке, отжирает 50
Ну здорово. А репл ccl - 16мб, о чем я бы даже и не узнал, если б не этот дурацкий спор.
А uLisp вполне на платформах с 2кб ram работает.
Я через ps-mem смотрю, в хтопе погоду на марсе показывает.
Хелловорлд на сишке в 11мб вот этот скопипастил:
#include <gtk/gtk.h>
// callback function which is called when button is clicked
static void on_button_clicked(GtkButton btn, gpointer data) {
// change button label when it's clicked
gtk_button_set_label(btn, "Hello World");
}
// callback function which is called when application is first started
static void on_app_activate(GApplication app, gpointer data) {
// create a new application window for the application
// GtkApplication is sub-class of GApplication
// downcast GApplication to GtkApplication with GTK_APPLICATION() macro
GtkWidget window = gtk_application_window_new(GTK_APPLICATION(app));
// a simple push button
GtkWidget btn = gtk_button_new_with_label("Click Me!");
// connect the event-handler for "clicked" signal of button
g_signal_connect(btn, "clicked", G_CALLBACK(on_button_clicked), NULL);
// add the button to the window
gtk_container_add(GTK_CONTAINER(window), btn);
// display the window
gtk_widget_show_all(GTK_WIDGET(window));
}
int main(int argc, char argv[]) {
// create new GtkApplication with an unique application ID
GtkApplication app = gtk_application_new(
"org.gtkmm.example.HelloApp",
G_APPLICATION_FLAGS_NONE
);
// connect the event-handler for "activate" signal of GApplication
// G_CALLBACK() macro is used to cast the callback function pointer
// to generic void pointer
g_signal_connect(app, "activate", G_CALLBACK(on_app_activate), NULL);
// start the application, terminate by closing the window
// GtkApplication is upcast to GApplication with G_APPLICATION() macro
int status = g_application_run(G_APPLICATION(app), argc, argv);
// deallocate the application object
g_object_unref(app);
return status;
}
Я через ps-mem смотрю, в хтопе погоду на марсе показывает.
Хелловорлд на сишке в 11мб вот этот скопипастил:
#include <gtk/gtk.h>
// callback function which is called when button is clicked
static void on_button_clicked(GtkButton btn, gpointer data) {
// change button label when it's clicked
gtk_button_set_label(btn, "Hello World");
}
// callback function which is called when application is first started
static void on_app_activate(GApplication app, gpointer data) {
// create a new application window for the application
// GtkApplication is sub-class of GApplication
// downcast GApplication to GtkApplication with GTK_APPLICATION() macro
GtkWidget window = gtk_application_window_new(GTK_APPLICATION(app));
// a simple push button
GtkWidget btn = gtk_button_new_with_label("Click Me!");
// connect the event-handler for "clicked" signal of button
g_signal_connect(btn, "clicked", G_CALLBACK(on_button_clicked), NULL);
// add the button to the window
gtk_container_add(GTK_CONTAINER(window), btn);
// display the window
gtk_widget_show_all(GTK_WIDGET(window));
}
int main(int argc, char argv[]) {
// create new GtkApplication with an unique application ID
GtkApplication app = gtk_application_new(
"org.gtkmm.example.HelloApp",
G_APPLICATION_FLAGS_NONE
);
// connect the event-handler for "activate" signal of GApplication
// G_CALLBACK() macro is used to cast the callback function pointer
// to generic void pointer
g_signal_connect(app, "activate", G_CALLBACK(on_app_activate), NULL);
// start the application, terminate by closing the window
// GtkApplication is upcast to GApplication with G_APPLICATION() macro
int status = g_application_run(G_APPLICATION(app), argc, argv);
// deallocate the application object
g_object_unref(app);
return status;
}
Чому ему кстати все сбцл предпочитают? Между гуайлом и общелиспом я бы выбрал первое, тем более что он еще и тоньше (и СТАНДАРТНЕЕ), но между гуайлом и условным питухоном я бы выбрал последнее.
>Чому ему кстати все сбцл предпочитают?
Умеет выводить типы, генерирует быстрый код.
https://programming-language-benchmarks.vercel.app/problem/spectral-norm
https://programming-language-benchmarks.vercel.app/problem/nbody
Я начал с clisp. Посидел на нём, не понравился.
Гугл -> Чё там самое популярное, надёжное, быстрое как понос? -> sbcl
SBCL понравился. Конец истории.
Можно было бы расписать про его JIT компиляцию, когда он по умолчанию компилирует даже в REPL, пока ты его отдельно не попросишь именно компилировать. Про то, что он живой и умирать не собирается: вон помню писал для 1.3.11 в универе (на убунте причём!), сейчас у меня 1.4.9 - и это ещё древняя версия. Но это всё все и так знают.
Или ты не sbcl спрашиваешь, а про Common Lisp vs Scheme?
Цепочка постов началась с меряния колонкой RES топа. Я привёл скрин с Maximum resident set size в 1 мег с копейками. Объясни мне, каличному, что я делаю не так?
Как вот этот говнокод можно переписать красивее?
https://pastebin.com/j3PQPQgy
Я бы написал defmacro, которое вызывает defmacro, чем делать ебаторию (eval `(defmacro
Боюсь, что либо без eval'а не обойтись (через defun функции, которая eval'ит defmacro), либо я чего-то очень сильно не понимаю.
Следующий код дефайнит, а потом кучу раз редефайнит макрос macro-name.
https://pastebin.com/hARM0ES5
Как такое обойти?
Дак ты не лупай по redefining-macros, а эксплицитно этот супер-макрос вызывай.
Вообще, я так долго могу советы в никуда давать, какая задача перед тобой стоит, что ты её пытаешься решить таким кодом? Желательно поподробнее.
>а эксплицитно этот супер-макрос вызывай
А, не я так не хотел.
>какая задача перед тобой стоит, что ты её пытаешься решить таким кодом?
Просто попытался связать sxql и cl-sqlite быстренько клеем. Сейчас вижу, что настолько просто уже не получится, нужно для запросов стейтменты (объекты) юзать, а не execute-to-list.
Фишка конкретно здесь состоит в том, чтобы импортнув мой пакет, юзер получал красивенький интерфейс к sqlite на s-выражениях.
https://pasteall.org/90Pk
Как-то так подобные макросы пишутся.
>>262153
>Просто попытался связать sxql и cl-sqlite быстренько клеем.
А зачем? Уж не это ли https://github.com/fukamachi/datafly ты изобрести пытаешься?
>А зачем? Уж не это ли https://github.com/fukamachi/datafly ты изобрести пытаешься?
>To load "datafly":
> Load 18 ASDF systems:
> alexandria asdf babel bordeaux-threads cffi cffi-grovel
> cl-annot cl-interpol cl-ppcre cl-syntax cl-syntax-annot
> closer-mop iterate split-sequence sxql
> trivial-gray-streams trivial-types uiop
> Install 12 Quicklisp releases:
> cl-dbi datafly fast-io function-cache jonathan kebab
> local-time log4cl optima proc-parse static-vectors
> symbol-munger
WTF?!
А можно мне мой велосипед назад? В нём меньше движущихся частей...
>Как-то так подобные макросы пишутся.
Хм. Никогда так и не освоился с проектированием на макросах. Полагаю нужно больше опыта. Алсо не знал, что macrolet работает последовательно.
Так и не понял, что ты точно сделал. Вроде бы
1) Выделил все зафиксированные части в функцию,
2) Добавил ещё один макрос (для списка), чтобы можно было применить их явно "по-месту", без eval.
То есть нужно сопротивляться eval со всех сил, и если видишь циклическую кодогенерацию, что заюзать вот такую конструкцию? Также, если есть сурс, где такому учат (типа Гофовских "Паттернов проектирования"), то прошу поделится.
Выглядит datafly хорошо, особенно для моих размеров БД. Хотя мне стало интересно, при каких размерах, просто загрузить всё в лист - уже не такая хорошая идея. Я тупо использовал максимально низкоуровневые инструменты, что мог. Первое что нашёл, загуглив лисповый адаптер для sqlite. Первое, что нашёл на sql с s-выражениями. Если бы было ещё что-то проще чем sxql, то это бы взял видимо. Как-то на лиспе больше хочется костыли городить.
>Алсо не знал, что macrolet работает последовательно.
Не, он параллельный, как let ( https://ideone.com/SRpE15 )
В том коде раскрытие макросов происходит в несколько проходов. Сначала генерируется (progn (define-yoba-wrapper ..) (define-yoba-wrapper ..) ...), а следующим проходом раскрываются (define-yoba-wrapper ..)
> чтобы можно было применить их явно "по-месту", без eval.
Нет, не для этого. Просто, чтобы не превращать код в нечитаемую лапшу.
Можно было и одним макросом всё написать.
>То есть нужно сопротивляться eval со всех сил
Если у тебя в коде появился eval, то, скорее всего, ты что-то делаешь не так.
>Также, если есть сурс, где такому учат (типа Гофовских "Паттернов проектирования"), то прошу поделится.
OnLisp
Лиспаны, у кого гитхаб есть, ткните их носом, пусть обновляют sly до последней правки (554e6b09d9741f6367e144a1165e3c7fa2e3a8c3), в ней починили навигацию по коду на емаксе >25 версии
А если у меня самописный конфиг к Редактору?
Я написал костыль, который имитирует REPL лиспа (то есть вычитывает, выполняет, и выводит), но сделал я это через cl-readline.
Это важный момент, потому что я делаю на SBCL и там почти всё в репле кастомизируется. По идее можно было не вылезать из него и всё. Но я так и не понял, как заставить sbcl юзать readline. Разве что rlwrap sbcl, но мне это не совсем подходит.
как встроить ридлайн в sbcl'ный репл?
Н И Е Т
И
Е
Т
Конечно, я осознаю что с твоей точки зрения ем суп ложкой. Но всё же не спроста выбрал учить лисп без каких либо IDE, тем более знаменитой LispOS. Это сделано с целью почувствовать насколько лисп поддерживает мой любимый антисвистоперделистый стиль работы. И вроде как поддерживает неплохо, только иногда тянется много зависимостей. Каждый раз когда вижу александрию, вздрагиваю.
И сейчас хотелось бы чистенькой консолечки.
Даже нагуглил https://github.com/jini-zh/sbcl-readline/blob/master/sbcl-readline.lisp но оно кастомное (не в quicklisp). Пока читаю код и не понимаю как это работает.
>>262926
О, вопрос снят, всё придумано давно. Надо было тред на реддите внимательнее читать, когда гуглил хуелион недель назад.
https://www.common-lisp.net/project/linedit/
cl-repl https://github.com/koji-kojiro/cl-repl
>>262955
Это то же самое, что купить автомобиль и запрячь в него коней, потому что придерживаешься антибензинового метода перемещения.
Общелисп спроектирован как язык интерактивного программирования: позволяет переопределять в рантайме функции, макросы, классы, структуры, пакеты, выполнять произвольные участки кода в любой момент времени, имеет средства интроспекции, протокол восстановления от ошибок (сигнальный протокол с перезапусками). А ты намеренно обходишь основную его фишку.
Не юзать IDE =\= не юзать возможности интерактивного программирования.
Скорее подойдёт аналогия с тем, что тебе разрекламировали мощный крутой автомобиль, когда ты катался на лошади, но вместо бензинового монстра ты покупаешь маломощный электромобиль. Потому что придерживаешься антибензинового метода перемещения, да.
>Не юзать IDE =\= не юзать возможности интерактивного программирования.
Ну да, тянуть машину лошадью тоже =/= не ехать. Кстати, не думаю, что явисты с тобой согласятся, что <любимый программируемый редактор> + slime = IDE
И как ты их используешь без слайма? Расскажи. Копируешь код по одной функции из редактора в репл или сначала пишешь в репле, а потом копируешь в редактор? А макросы как раскрываешь? Тоже копировать-вставить-копировать-вставить? А с отладкой что? Как инспектируешь кадры стека вызовов при ошибке?
Ну вот, начинается. Проматывай сразу в конец для ответов на вопросы, а я пока распишу отвлечённую хрень.
Начал я с VB6. Такая ебола, которая позволяет очень быстро клепать GUI приложения, но при этом настаивает на очень хреновом стиле программирования. Там редактор автоматически предлагает весь код в формах писать, и сейчас я уже понимаю, что это мерзость. Но не тогда, тогда это была игрушка для школьника. Однако сделать что-то серьёзное уже не мог - сложна. Отладка идёт медленно, но на деле - быстро. Медлительность из-за мозга школьника, а не инструмента.
Потом кресты. С++ начал учить в конце школы, на Dev-C++ с MinGW. Было сложновато, но зато это был первый вкат в комплюктер сайанс. GUI тогда стало недостижимо, потому что у меня был выбор из wxWidgets и Qt и оба были такой сложной хуйнёй, что я ебал. В Qt даже сейчас порою путаюсь. Стал мочь больше, но стало меньше "игрушечности", "веселья". Отлаживался уже с трудом, ошибки шаблонов заставляли волосы на голове шевелится. Но это была всё же IDE.
Потом универ. Саблайм, а потом и вим. Совсем голые мэйкфайлы, исходники с кодом и всё. Однако стал мочь сделать намного больше, в это время выучил очень много всякого технологичного скама. Отлаживался уже "внимательным взглядом", потом меня наускали на gdb и стало совсем хорошо.
Сейчас на работе я не могу понять как люди долго работают с кодом, не сделав ни одной компиляции. Ошибки компилятора - главный детектор ошибок синтаксиса, не линтер. Чем дальше углублялся, тем примитивнее становились инструменты и тем больше и проще можно было их кастомизировать чисто под себя. И чем дальше, тем меньше мне хотелось "загрязнённой среды". А теперь, с вот этим контекстом, поехали.
>И как ты их используешь без слайма?
Делаю систему, делаю load.lisp, который добавляет папку к каталог asdf и загружает систему, потом загружаю этот файл через --load при запуске sbcl (через makefile). Позволяет потестить сразу же ручками, что написал.
> Копируешь код по одной функции из редактора в репл или сначала пишешь в репле, а потом копируешь в редактор?
Если есть какая-то сложная концепция, то делаю как с крестами: пишу сразу в репле маленькую тестовую функцию/макрос, которая реализует функционал и смотрю, как это работает. Хорошо ограничивает сложность, потому что когда видишь конструкцию вида ,',something в коде, то сразу задумываешься, а хороший ли код ты написал.
> А макросы как раскрываешь?
Точно так же, загрузив систему или через маленький тестовый макрос + macroexpand-1.
> А с отладкой что? Как инспектируешь кадры стека вызовов при ошибке?
Пока мне хватало встроенного в репл инструмента. Очень крутой. Стека вызовов как такового нет, потому что все мои "проекты" <1к строк. Достаточно посмотреть, в какой функции ошибка.
Вот и всё. Проще - лучше. Лисп понравился не потому что кто-то показал охуенное демо, где он в SLIME выращивает какую-то прогу органически, почти без усилий, а потому что это самый выразительный/мощный язык из мне известных.
Ну вот, начинается. Проматывай сразу в конец для ответов на вопросы, а я пока распишу отвлечённую хрень.
Начал я с VB6. Такая ебола, которая позволяет очень быстро клепать GUI приложения, но при этом настаивает на очень хреновом стиле программирования. Там редактор автоматически предлагает весь код в формах писать, и сейчас я уже понимаю, что это мерзость. Но не тогда, тогда это была игрушка для школьника. Однако сделать что-то серьёзное уже не мог - сложна. Отладка идёт медленно, но на деле - быстро. Медлительность из-за мозга школьника, а не инструмента.
Потом кресты. С++ начал учить в конце школы, на Dev-C++ с MinGW. Было сложновато, но зато это был первый вкат в комплюктер сайанс. GUI тогда стало недостижимо, потому что у меня был выбор из wxWidgets и Qt и оба были такой сложной хуйнёй, что я ебал. В Qt даже сейчас порою путаюсь. Стал мочь больше, но стало меньше "игрушечности", "веселья". Отлаживался уже с трудом, ошибки шаблонов заставляли волосы на голове шевелится. Но это была всё же IDE.
Потом универ. Саблайм, а потом и вим. Совсем голые мэйкфайлы, исходники с кодом и всё. Однако стал мочь сделать намного больше, в это время выучил очень много всякого технологичного скама. Отлаживался уже "внимательным взглядом", потом меня наускали на gdb и стало совсем хорошо.
Сейчас на работе я не могу понять как люди долго работают с кодом, не сделав ни одной компиляции. Ошибки компилятора - главный детектор ошибок синтаксиса, не линтер. Чем дальше углублялся, тем примитивнее становились инструменты и тем больше и проще можно было их кастомизировать чисто под себя. И чем дальше, тем меньше мне хотелось "загрязнённой среды". А теперь, с вот этим контекстом, поехали.
>И как ты их используешь без слайма?
Делаю систему, делаю load.lisp, который добавляет папку к каталог asdf и загружает систему, потом загружаю этот файл через --load при запуске sbcl (через makefile). Позволяет потестить сразу же ручками, что написал.
> Копируешь код по одной функции из редактора в репл или сначала пишешь в репле, а потом копируешь в редактор?
Если есть какая-то сложная концепция, то делаю как с крестами: пишу сразу в репле маленькую тестовую функцию/макрос, которая реализует функционал и смотрю, как это работает. Хорошо ограничивает сложность, потому что когда видишь конструкцию вида ,',something в коде, то сразу задумываешься, а хороший ли код ты написал.
> А макросы как раскрываешь?
Точно так же, загрузив систему или через маленький тестовый макрос + macroexpand-1.
> А с отладкой что? Как инспектируешь кадры стека вызовов при ошибке?
Пока мне хватало встроенного в репл инструмента. Очень крутой. Стека вызовов как такового нет, потому что все мои "проекты" <1к строк. Достаточно посмотреть, в какой функции ошибка.
Вот и всё. Проще - лучше. Лисп понравился не потому что кто-то показал охуенное демо, где он в SLIME выращивает какую-то прогу органически, почти без усилий, а потому что это самый выразительный/мощный язык из мне известных.
> Начал я с VB6.
Анатомические Травмы Головного Мозга у Подростков, Обзор Неврологии, 3000 экземпляров
Бля, а ведь я тоже начинал настоящее программирование с визуальной какой-то хуйни. Тоже вот эти обязательные формы. Меня наверное спасло то что потом у меня был школьный паскаль. Ну а потом, да, ебучие кресты, в рот я их ебал, был бы хоть кто-то кто бы сказал какой я хуйней страдаю когда читаю книгу в которой какой-то хуй описывает как вычислять факториал на темплетах через енум-хак. Ну и хуета, блять.
Братан, если ты используешь вим, не поленись, потыкай плагины на него для лиспа. Просто вот ты тоже щас хуйней занимаешься, понимаешь, да?
>Просто вот ты тоже щас хуйней занимаешься, понимаешь, да?
Опять же, нет, не понимаю. Хотя, расписав вот ту херню сверху я не поленился погуглить и побольше узнать про слайм(-в).
Каково же было моё удивление, когда первое же, что мне было сказано: "Тебе надо SWANK". На закономерное "это чё?" оказалось что "Это TCP сервер". Тут-то пришло время мне впадать в ахуй.
Распиши лучше, почему такой эрзац-юниксвей, который я в силу своего скудного опыта смог сотряпать - это хуйня. Потому что не понимаю, хоть ты тресни, чем таким лучше сидеть с такой еболой. Может быть если большие проекты разве что.
Ну крч смотри, в коммон лиспе принято работать в картине (имедж) - например работающий сбцл. Сванк это тупо код который сбцл подгружает, что бы слайм мог с ним базарить.
Тут можно вопрос поставить по другому: а зачем перезапускаться? Если ты перезапускаешься на каждый чих, то ты не так уж и далеко ушел от плюсов. Обычно под РЕПЛом подразумевается вот что: в своем файле ты пишешь код, и что бы его подгрузить, делаешь сочетание клавиши, которое отправляет его в картину. Если ты копируешь его вместо того что бы нажать сочетание, ты делаешь лишние телодвижения. Хочешь макроикспэнд? Нажми сочетание, будь человеком. Я уж не говорю о том какой убогий консольный ЮИ когда тебе выбрасывает ошибку или кондишн. И использую асдф, не делай лоад. Лоад это прошлый век. Я уж не говорю про фичи вроде человеческого дескрайба в отдельном окне или прогулки по дереву значений (вот есть у тебя структура, ты на нее в репле нажал, смотришь все слоты, а потом что в отдельном слоте, или смотришь какие методы определены у класса, и.т.д)
Да и вообще, просто попробуй, не спрашивай зачем, вот если не понравится, тогда напишешь тут почему.
Два чаю этому художнику. Лисп без sly/slime - это как купить игровой комп за 120к и использовать его как подставку для книг.
>Если ты перезапускаешься на каждый чих, то ты не так уж и далеко ушел от плюсов.
Это всегда был скорее плюс, потому что избавляюсь от всего. Одна из самых идиотских ошибок - это когда ты думаешь что этого кода не было/был, а на деле он есть/его нет. С питона знаю. Самый маразматический случай был, когда учился работать с БД (в частности сетапить PKI и авторизацию): были скрипты для создания бд, её заполнения, и удаления. Чтобы можно было раз за разом воспроизводить одинаковую среду. ИЧСХ, я закончил и сдал побыстрее других однокурсников.
> И использую асдф, не делай лоад.
Но ведь я делаю ql:quickload, а лоадом лишь загружаю файл, который говорит asdf'у где смотреть мою систему...
>>264151
Почему использование лиспа как языка без вот этих вот красивостей - это резко подставка для книг, понять точно не смогу. У лиспа есть много всего хорошего и без утончённых танцев над имаджем. Я вот щас за игровым компом сижу (топ года эдак для 2018), на линуксе. Считается как подставка для книг?
>>264151
>>264138
Окей, попробовать всегда можно. Но, если в этом треде/где-то ещё объявится маразматик, который будет упорно делать загружаться на голом sbcl, то... ну вы понели.
> Но ведь я делаю ql:quickload, а лоадом лишь загружаю файл, который говорит asdf'у где смотреть мою систему...
cat ~/.config/common-lisp/source-registry.conf
(:source-registry
(:tree (:home "lisp"))
:inherit-configuration)
mkdir ~/lisp
не благодари
мимоБайтоеб
>Лоад это прошлый век
Даже в прошлом веке такой хуйнёй не занимались.
По крайней мере на лисп-машинах
>>264096
>Распиши лучше, почему такой эрзац-юниксвей, который я в силу своего скудного опыта смог сотряпать - это хуйня.
Смотри. Цикл разработки на си (и многих других языках) чётко делится на стадии: пишешь код, потом компилируешь, потом отлаживаешь и снова возвращаешься к первому пункту. И так не потому, что удобнее иначе бы среды разработки не пытались размыть между ними границы, эти стадии продиктованы инструментарием.
В общелиспе же это разграничение отсутствует совсем. даже нет стадии компиляции, потому как она ничем не отличается от ординарного выполнения кода. в схеме, кстати, не так, он изначально спроектирован как динамическая, программируемая система. Так что, притягивая за уши сишный цикл разработки ты только создаешь себе проблемы на пустом месте. Твой "эрзац-юниксвей" сравним с попыткой добыть огонь методом трения спички о зажигалку.
>>264138
>в коммон лиспе принято работать в картине (имедж)
Проиграл. Мне кажется, правильнее говорить "работать на холсте", а не "в картине"
То есть суть в том, чтобы относится к нему не как к программе, а как к некоторому алгоритмическому блобу? Который ты лепишь, как из глины, пока не станет "относительно заебись"?
Хорошо, тогда у меня вопрос: а как это распространяется? Или деплоится. Не важно.
На сишке/крестах - понятно. На скриптовых всяких языках тоже вроде понятно, считай то же самое. Но что здесь? Сохранить имадж, а потом поднимать его и запускать с определённой точки входа?
>То есть суть в том, чтобы относится к нему не как к программе, а как к некоторому алгоритмическому блобу?
Да не, просто рабочий процесс другой. Разберешься по ходу.
>Хорошо, тогда у меня вопрос: а как это распространяется? Или деплоится.
asdf program-op / roswell
Например https://github.com/McCLIM/McCLIM/blob/master/Apps/Listener/clim-listener.asd#L20
https://github.com/fukamachi/clack/blob/master/roswell/clackup.ros
Были ещё решения типа cl-launch, buildapp или прямого дёрганья за save-lisp-and-die, но сейчас они устарели.
>Сохранить имадж, а потом поднимать его и запускать с определённой точки входа?
Образ может быть сохранен как исполняемый файл с произвольной точкой входа.
http://www.sbcl.org/manual/#Function-sb_002dext-save_002dlisp_002dand_002ddie
Но если пишешь законченную программу, то вручную
>или прямого дёрганья за save-lisp-and-die, но сейчас они устарели
Я так экзешник делал(( Ещё выставлял сжатие в девятку и хотел declaim optimize 3 везде сделать.
И потом резетить в debug и safety, если захочется? Не подумал об этом. На самом деле, я об .sbclrc вообще мало думал. Как-то в парадигму в голове не вписывается.
Я просто подумал что ты прямо в файлах это собирался делать. Достаточно только в репле перед quickload, наверное. А там же еще библиотеки сторонние есть.
Я, есличо, не деплоел ничего никогда, поэтому не знаю тонкостей.
Если для себя, то норм
Но вот так делать не стоит: https://github.com/stumpwm/stumpwm/blob/master/make-image.lisp.in
> ;; We register StumpWM and its dependencies as immutable, to stop ASDF from
> ;; looking for their source code when loading modules.
wut
У меня было просто как на пике. Так-то можно?
>wut
Это чтобы asdf не загружал каждый раз код stumpwm'а, если его версия в образе отличается от той, что на диске.
Вообще я посмотрел ещё https://github.com/stumpwm/stumpwm/blob/master/load-stumpwm.lisp.in и выглядит концептуально... как у меня, да.
А чем плох именно метод stumpwm? Может я детали какой-то не вижу?
Да в общем-то тем же, чем и любой наивный велосипед хуже отлаженного инструмента.
>Может я детали какой-то не вижу?
Посмотри, как stumpwm опакечивается. При всей простоте сборки ни один из дистрибутивов не поставляет его в собранном виде, а только в виде дерева исходников. Знаешь почему? Потому что меинтейнеры ебали костылить их велосипед.
Кстати, фиксится всего парой строчек, но чтобы найти решение, пришлось перековырять исходники cl-launch, buildapp, deploy и документацию asdf.
я кстати этот стампвм просто квиклиспаю, ебал я его с аура ставить, как предлагает арчвики
>>264474
> >Хорошо, тогда у меня вопрос: а как это распространяется? Или деплоится.
Ещё есть https://github.com/Shinmera/deploy , батя грит малаца.
>Посмотри, как stumpwm опакечивается.
Ты слишком большого мнения об анонимусе в интернете. Я всё ещё не понимаю. Там что-то во время top-level функции с SBCL_HOME делается, но это всё, что я заметил. Вроде бы они собирают экзешник и ставят его. Если были какие-либо зависимости (как, например, cl-readline зависит от libreadline), то полагаю, что всё это нахуй катится.
Собственно вот это самое "нахуй" они вот тут расписывают:
> The recommended way to install the dependencies is using Quicklisp.
Гугл тренды говорят, что интереса не было нихуя, а в последние годы еще этот нихуя и падает.
Хотя когда статьи читаешь в тырнете все хвалят, ебать какая кложа, ебать скоро туземун, сообщество растёт, в проде используют. Только вот эти статьи 2017 года.
Короче, минус мораль. Тяжело учить язык ради абстрактных "make you better as programmer because of list and FP".
а жаль, ведь из лиспов больше нихуя и нет на рынке. а программировать за деньги на мейнстриме зашквар. да та же кложа в одних вэб проектах. так, че там дальше по списку неуебищности, но за что еще готовы платить? а то а заебался самые натуральные борщи хлебать.
> че там дальше по списку неуебищности
Хайп же не на пустом месте появляется.
Питон - заебись. Пластелиновый код. Быстрая разработка. Либы на любой пердёж. Дохуя вакансий в разных областях.
Go - безопасный и быстрый код. Подходит даже для скриптинга. Даже дауны могут на нём писать. Дохуя вакансий на сервисы/инфраструктуру.
Я своё питон-го резюме обновил случайно, мне начали на гошку писать, а не на пистон, что удивительно.
> питон, го
ну я же говорю, "неуебищности", а не "уебищности". то что каждый даун может писать, это минус, а не плюс. зачем соревноваться с даунами за их места? уж лучше язык с кучей легаси. но только не кресты, плес.
>>265000
вообще-то не до пизды, поэтому и вопрошаю. и, да, нахуй вэб дэв, это тоже зашквар.
>но только не кресты, плес
мерзкий смех за фоне
Я чо так сразу? По твоим критериям подходит. Илитный язык, хуй кто выучит все нюансы когда. Сколько примений у слова static и в каких контекстах?
Чел, на этом goвне уже успели нарисовал кучу легаси. Хз зачем тебе "сложный" язык. Ты кодить хочешь или бойлерплейт парашу рисовать/некрокод поддерживать?
>>265026
> сложный
Конечно, казалось бы, какая разница на чем писать, выбирай лучше интересый проект, и да, все так, но просто лисп оказался зоной комфорта, и покидать ее не охота.
Да в принципе, ладно, пацаны. Тут и так ясно, берешь языки которые хоть чем то нравятся, и идешь шерудить сайты с вакансиями. Я вас так, подбадриваю тут, что бы не скучали.
Написал бы чего прорывного на лишпе тогда.
Где орды лиспокакеров, копротивляющиеся монополиям копрораций?
В елиспе очередной IRC клиент пилят за мамкинми борщами
Новую версию nyxt выкатили
Коммент на stacoverflow:
- Почему вы убрали slojure из годового отчета, популярность языка же выросла!
Рандомные утверждения из комментов, интервью:
- то, что либы не обновляются по несколько лет, это нормально! Один раз написал, они работают, что ещё надо?
- что значит мало задают вопросов по языку на stackoerflow? Это не значит, что язык мертв! Это значит, что по нему не нужно задавать вопросы! Я вот в последний раз туда заходил только чтобы посмотреть как апихи на джаве писать!
Короче, твёрдо и четко, НЕ НУЖ НО
А чё проигрываешь-то? Второй аргумент, конечно, сомнительный stackoverflow не нужен, да, а первый вполне валидный - я вон на CL некоторыми библиотеками пользуюсь, которые обновлялись в последний раз в 2017. Как там,
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо
Охуенно, лисп на седе после такого не кажется эзотерическим программированием.
Да, новое какое-то всратое: тупит-тормозит, не показывает все сообщения, плюс ещё ебаная бесконечная прокрутка при просмотре темы.
Я дебил, не стоит на это отвечать. Но да, иногда справка в лиспе может быть немного... запутанной. В питухоне подобное сразу из коробки, чтобы дебилы постами в питонотреде не срали.
Разобрался? Просто :output :interactive и :input :interactive к списку аргументов добавить нужно
Да, я просто жопой доки читаю.
Но они всё равно срут.
Короче, заебала меня эта идея фикс, вот думаю, надо ли в себе её подавлять, и не делать необдуманных импульсивных поступков.
Это еще при том, что я практически нихуя не написал на кложе. Надо наверное таки пережить месяцов-другой с этой мыслью, покодить на кложе, и понять, точно ли я хочу смывать свою программерскую карьеру в унитаз, и, что важнее, ради чего вообще.
>>265363
> я вон на CL некоторыми библиотеками пользуюсь, которые обновлялись в последний раз в 2017
Ну если ты пишешь на ClojureScript, которая зависит от либ ЖС, то о свежести пакета хош не хош придётся задуматься.
>У меня идея фикс закралась в голову, сменить работу питониста на кложуриста.
Почему, чем ты руководствуешься? Если бы я искал себе работу на окололиспе, то только если бы я писал на нём уже много лет и хорошо писал. А то вон, пишу уже года три время от времени, и оказалось, что даже SLIME не юзал.
> У меня идея фикс закралась в голову, сменить работу питониста на кложуриста.
Охуенная идея же. У меня как запасы после последней галеры подойдут к концу, тоже в кложу вкатываться буду (сейчас неспешно изучаю, уже Clojure for brave and true осилил).
Да в том-то и дело, что к мотивации вопросы.
Из рациональных причин, которые я могу придумать, такие:
- сказки про быструю разработку меня подкупили. Хочу узнать почему так и научиться также
- узнавать новое - заебись. На новых языках писать - заебись. Новые концепции - заебись. Быстрее всего опыт приходит нанепосредственной работе. Пет проекты приносят преимущественно только поверхностные знания
- дохуя слышал что фп и лисп сделают из меня лучшего программиста
- хочу от работы получать удовольствие. Деньги важны, но спокойствие, кайф от работы и счастье еще важнее. Готов проебать в ЗП, но кайфовать от работы. Но хз как этому именно кложа будет способствовать, а не решаемые на ней задачи
Ну и эти пункты скорее всего тупо рационализация идеи фикс, и я скорее всего просто ищу причину съебать с моего текущего места работы.
>>267938
Да хуй знает. Вот прямо сейчас, в данный момент, вакансий на кложу - ровно одна штука, нахуй. В health samurai. Но чет про саму контору и отзывы о ней я не много нашел, хотя в круге кложуристов она известна. Т.е. работы как таковой нихуя нет. А как я уже выше писал, гуглтренды показыавют спад интереса к языку, которого и так нихуя не было. Короче это по всем критериям хуёвая идея, но не смотря на все доводы, мозг хочет блядь пойти работать в лисперы.
>Пет проекты приносят преимущественно только поверхностные знания
Лал. Больше всего знаний про дизайн приложений я узнал в универе, от умных людей, и закрепил чтением википедии и в петпроджектах. Все свои знания про плюсы я получил сам. Максимум на чёртовом хабре мог узнать что "О, ёпт, std::variant теперь часть стандарта. Охуеть, как люди заживём!". (Ещё можно одну конторку игроделов упомянуть, но там чуть-чуть только поднабрался. В основном сам.)
>- дохуя слышал что фп и лисп сделают из меня лучшего программиста
С фп - сказки. Можно и на фп говнокодить. Иногда чистая функциональщина на этих ваших компуктерах тормозит немного без мутабельности.
А вот с лиспом была где-то такая цитата, что программист типо мыслит самыми выразительными конструкциями, что только может. Если ты знаешь только кресты, то ты всегда будешь мыслить только ими. А вот если ты знаешь лисп, то даже используя плюсы (или ассемблер), будешь стремится к лучшему. Я именно поэтому выучил лисп. Ещё бы в Forth покопаться бы...
> хочу от работы получать удовольствие
> Но хз как этому именно кложа будет способствовать
Вооот! Именно это я и спрашивал. Как ты думаешь ты будешь получать удовольствие, если ты ещё даже для себя на кложуре не пробовал писать?
> Лал. Больше всего знаний про дизайн приложений я узнал в универе, от умных людей, и закрепил чтением википедии и в петпроджектах. Все свои знания про плюсы я получил сам. Максимум на чёртовом хабре мог узнать что "О, ёпт, std::variant теперь часть стандарта. Охуеть, как люди заживём!". (Ещё можно одну конторку игроделов упомянуть, но там чуть-чуть только поднабрался. В основном сам.)
На работе от умных дядек/коллег быстрее. На примерах быстрее учишься. Но в конторах, конечно же, просто доходишь до какого-то определенного минимума развития, чтобы работу работать, и останалвиваешься. Но первый буст очень хороший. Ну, не буду экстраполировать на всех, у меня на реальных задачах быстрее получается.
> С фп - сказки. Можно и на фп говнокодить
Ну тут больше про расширение кругозора. Одно дело, когда питон/го/жс позволяет писать как на фп, другое дело когда язык тебя принуждает, и ебись как хочешь. Сразу мозги работать по-другому начинают. Мозг - ленивая хуйня. Без принуждения будет по старым тропам ходить, даже если вокруг еще сотни.
> Вооот! Именно это я и спрашивал. Как ты думаешь ты будешь получать удовольствие, если ты ещё даже для себя на кложуре не пробовал писать?
Ну пишу, пишу. Пока весело. Но что-то мне подсказывает, что на любом языке писать весело, главное чтобы задачи нравились. А не ёбаная поддержка/легаси.
Короче, ясен хуй, сильных причин за переход в кложу нет. Видимо нужно перетерпеть. Или хорошенько все обдумать еще раз, и поизучать перспективы.
Алсо, еще один поинт для меня, что в маленьких сообществах можно легче стать узнаваемым, т.к. конкуренции очень мало. Мало контента, мало статей, мало ютаб роликов. Поэтому даже говноконтент будут хавать за обе щеки. Другое дело, будет ли народ, чтобы хавать этот контент, или язык потихоньку умрёт, так и не родившись.
> Вакансий в РФ
Обесни, почему такая фиксация на пидорахию? Сейчас глобальная пандемия бушует, зарубежные конторы с удовольствием берут людей на удалён очку.
>Это правда, что LISP это язык для обучения принципам программирования?
Испорченный телефон в действии.
Есть курс лекций для обучения принципам программирования, называется SICP. В нем предлагается язык Scheme для решения заданий.
Да-да, неправильно сформулировал. Надеялся, что можно не читать SICP и найти другой способ вкатиться через LISP.
Есть и другой способо - HTDP
>Одно дело, когда питон/го/жс позволяет писать как на фп, другое дело когда язык тебя принуждает, и ебись как хочешь. Сразу мозги работать по-другому начинают.
Тогда ты выбрал не тот язык. Кложа не годится для расширения сознания, это такой же язык-компромисс, как и перечисленные тобою питухоны-жээсы.
Хочешь погружения в ФП — бери хаскель.
Так помимо того что кложа фп это ещё и лисп с макросами и прочей ебалой типа гомоиеонности.
Алсо фронт на кложе довольно прикольно писать. Кажется интуитивно понятнее ебалы на жс.
Ещё не выучил инглиш чтобы спикать. Но все чаще появляется желание работать за доллары/евро.
Надо подтягивать.
Там от функциональщины только ФВП и иммутабельные СД. Без АТД, каррирования, лени, нормальной системы типов, контроля побочных эффектов и хвостовой рекурсии без костылей это не более, чем суррогат ФП.
Я не говорю, что это плохо. Такой компромисс, возможно, для кого-то и имеет смысл. Но для погружения в ФП он не годится.
> АТД
Здравствуй-приехали, а deftype, defrecord и reify там для красоты?
> каррирования
Здравствуй-приехали, а partial там для красоты?
> лени
Здравствуй-приехали, а lazy-seq там для красоты?
> нормальной системы типов
Нахуй иди кароч.
Я понимаю, что веб-макакам сложно ориентироваться в информации, отличающейся по формату от стэковервлоу, но неужели ты не мог хотя бы по первому абзацу в википедии прочитать?
>Здравствуй-приехали, а deftype, defrecord и reify там для красоты?
АТД = алгебраические типы данных. В кложуре их нет.
>Здравствуй-приехали, а partial там для красоты?
частичное применение ≠ каррирование, учи матчасть
>Здравствуй-приехали, а lazy-seq там для красоты?
ленивые списки — лишь один из частных случаев применения лени.
Но отчасти я согласен, LazySeq там действительно не для красоты, лол.
В кложуре вообще-то есть хрестоматийные макросы delay/force, обеспечивающие возможность отложить вычисления до востребования, что является своего рода реализацией ленивых вычислений с "ручным закатом солнца". Но даже нет смысла говорить, насколько они бестолковы в языке с энергичными вычислениями, факт существования такого костыля как LazySeq говорит сам за себя.
По поводу каррирования стало интересно, вот наткнулся на решение через partial и reduce https://practical.li/clojure/thinking-functionally/partial-functions.html
Или встроенная в язык фича это принципиально? Интересно, это макросами можно сделать...
>Или встроенная в язык фича это принципиально?
Ну а ты сам как думаешь?
>Интересно, это макросами можно сделать...
Прикрутить сбоку изолентой — легко, минутное дело. Но чтобы внедрить полноценно, нужно перекроить весь язык.
> Прикрутить сбоку изолентой
> макросы
Ты хорошо понимаешь как макросы работают? Если макросы - это "прикрутить сбоку изолентой", то там весь, блядь, язык так построен. И мало того, такой красивой, прочной и стандартизованной изоленты ты не найдёшь нигде ещё. Тогда некоторые "полноценные внедрения в язык" и рядом с этой изолентой не стояли.
Олсо, объясни тогда уж дебилам в треде, чем так сильно частичное применение от каррирования отличается? Не определением, там-то понятно, а именно смыслом, возможностями? Или даже, чем чёрт не шутит, контекстом применения?
Мне каррирование по-настоещему было нужно только когда я имплементил SKI комбинаторы ради забавы. Усё.
Вот как-то так, например: https://ideone.com/sDozCL
>>271782
>Если макросы - это "прикрутить сбоку изолентой"
Речь не про макросы как таковые, а про чужеродность концепции.
Если язык и стандартная библиотека не скроены под неё, то она так и будет болтаться сбоку.
>чем так сильно частичное применение от каррирования отличается?
Тем же, чем и полноценная лень отличается от delay/force.
>Тем же, чем и полноценная лень отличается от delay/force.
Типа кишки торчат? Стройности нет? Можно чуть более развёрнуто? Дебилу всё-таки поясняешь.
>>271791
И ещё макросом чтения подкостылить можно, чтобы не так всрато выглядело https://ideone.com/u18Lvb
>>271794
Бля, во ты зануда. Монады в js или крестах видел? Чем они отличаются от монад в хаскеле? Вот тут то же самое.
>Монады
Когда в унике объясняли монады я пару проебал. Потом мне одногруппники какую-то херь про эндофункторы затирали, но я так никогда теоркат и не выучил, чтобы определение понять.
Сказано же было, блядь, что ты дебилу объясняешь? Неужели так сложно понять? Думаешь это самоирония такая?
>чем так сильно частичное применение от каррирования отличается?
Стоп. Ты что именно спрашиваешь? Чем кложура с partial отличается от хаскеля с каррированными функциями или тебе не понятны сами термины?
Хотя ладно, забей. Нагуглишь.
> Не определением, там-то понятно, а именно смыслом, возможностями?
Что такое делается каррированием, чего нельзя частичным применением сделать? Один пример. И я отъебусь.
Алло, блядь. Применение каррировнной функции и есть последовательность частичных применений.
Вопрос не в "нельзя"/"можно", а целесообразности. В хаскеле частичное применение используется повсеместно, потому что не требует лишних телодвижений и хорошо сочетается в остальными концепциями. Так например, каррирование вкупе с комбинаторами, подходящей системой типов и синтаксисом делает удобным программирование в бесточечном стиле. Возможно ли писать в бесточечном стиле в кложуре/жс/жабе/крестах/го/etc? Технически - да, практически - нет, за исключением случаев, когда поедание кактуса является самоцелью
Розумеш? Если нет, то иди на хуй
Да, но о том я и говорил.
> Типа кишки торчат? Стройности нет?
То есть это концептуально одно и тоже, применяется в одних и тех же обстоятельствах/контекстах. Но чтобы юзать "каррирование" и "ленивые вычисления" в языках, что под это не были заточены, нужно больше телодвижений делать.
Я крестодевелопер по духу. Знаешь сколько телодвижений нужно мне обычно делать? Это не страшно. Если захочешь, сделаешь в том стиле, что захочешь.
>То есть это концептуально одно и тоже
Нет, блядь. Каррирование - колесо, частичное применение - движение. Двигать можно и куб, но колесо катится само.
>но колесо катится само
Ну вот видишь, хоть я и дебил, но физику знаю лучше тебя. И колесо и куб не катятся сами. И колесо и куб будут перемещатся/катится/кантоваться в специальных обстоятельствах. Например, на склоне горы.
Разница лишь в том, что колесо кантовать проще. Для этого даже выделили отдельное слово. Катить.
Если это всё, то я добавлю пунктик про каррирование в свою копилку "неловкостей". Как, например, отказ использовать SLIME.
По сути всё то же самое, но изъёбистей. Влияет на тренд, на глобальную привлекательность языка, но если ты сам решил использовать какой-то "неудобный" язык с не подходящей ему парадигмой, то никто тебя не остановит.
Я один хуй не понял. Partial в clojure есть. Каррирование - последовательное применение partial. Но каррирования в clojure нет.
> делает удобным программирование в бесточечном стиле.
А макросы стрелок в кложе это не программирование в бесточечном стиле, чи шо?
И чем же Common Lisp сложнее Пайтона? У Пайтона порог входа ниже, но когда углубишься в оба, поймешь, что they are the same shit.
если ты углублялся в оба хотя бы на черенок лопаты, то знал бы что это пиздец какие разные языки
Который по совместительству является справочной документацией и по объему не сильно отличается от документации основных частей Python. Есть в CL архаизмы и эзотерика типа get, но и в Pythonесть свое типа __getattribute__.
А Лисповское ООП, кстати, использовать даже проще питоньего.
>>274484
Самые заметные различия между Python и CL – генераторы с одной стороны и CLOS с другой. Можно сколько угодно рассказывать про борщехлёбское метапрограммирование, но по факту большая часть кода на CL является типичной Python-like императивщиной, в которой даже вместо filter-map-reduce часто используют еретичный loop либо православный iter, а самописные макросы обычно применят лишь как синтаксический сахарок. Примеры? Да хоть Hunchentoot.
>А Лисповское ООП, кстати, использовать даже проще питоньего.
О, сразу видно, метаобъектным протоколом не обмазывался.
Да, не обмазывался (но читал о нём), вот только это твое утверждение находится на одном уровне с "Паттерном интерпретатор не обмазывался". Никто не просит обмазываться MOP там, где можно обойтись без него. Иначе выходит типичный борщехлёбский номер: выбирать непривычный инструмент ради того, чтобы героически преодолевать создаваемые им трудности. Это не говоря о том, что MOP не является официальной частью стандарта.
>Это не говоря о том, что MOP не является официальной частью стандарта.
Кек, питон вообще частью никакого стандарта не является
У Common Lisp есть HyperSpec. У Python же есть эрзац-стандарт:https://docs.python.org/3/reference/
А вообще, то, как ты сейчас увильнул заставляет подозревать в тебе очередного шиза, спорящего ради споров, но пока что отброшу подозрение. К твоему сведению: я не пытаюсь защищать Python. Более того, в выборе между CL и Python я as default предпочту CL, ибо его достоинства перевешивают достоинства Пайтона.
> Самые заметные различия между Python и CL – генераторы с одной стороны и CLOS с другой.
Какие нахуй самые заметные различия, дебс? Это не делает их "same shit", которое вообще не понятно что означает, не даже похожими друг на друга. В СЛ ты мешаешь императивщину с функциональщиной как угодно, потому-что это мультипарадигменный язык. То что ты в какой-то там библиотеке увидел говнокод для веба, это не показатель даже среднего по больнице. Да дело даже в этом, в питоне мапредус это ебаная клоунада.
Конечно на СЛ писать проще - потому-что язык лучше. Хуле тут сложного.
> ибо его достоинства перевешивают достоинства Пайтона.
Чисто из интереса, какие достоинства у CL? Сам я с питона начинал -- охуенный язык. Если не считать динамическую типизацию минусом, конечно.
Я тут мимокрокодил, но сразу могу сказать: скобки лучше пробелов ебаных.
А вообще ощущение от питона, что он пытается заставить тебя мыслить квадратно-гнездовым образом. Это вроде даже в дзене питона прописано. Так-то даже кресты лучше питона, если выразительную силу не брать в рассчёт.
Same shit - англоязычное выражение такое. "Суть одна хуйня". Слово "shit" воспринимай как иронию.
>То что ты в какой-то там библиотеке увидел говнокод для веба, это не показатель даже среднего по больнице.
>какой-то там библиотеке
>Hunchentoot
Если для тебя Hunchentoot - "какая-то там библиотека", значит ты в лисп-сообществе ни ногой.
Лады, вот еще примеры:
City of the Damned
https://github.com/gwathlobal/CotD
Mezzano. Луп на лупе сидит и сетфом погоняет.
https://github.com/froggey/Mezzano
Любопытные проекты, чё. По твоим меркам их тоже быдлокодеры писали?
>>275717
Макросы
Стабильность реализаций
Неожиданно высокая производительность (если тюнинговать - в 30 раз быстрее Пайтона)
Самый проработанный в мире exception handling
SLIME REPL, позволяющий дописывать и переписывать программу прямо во время исполнения
CLOS, делающая почти все классические паттерны ненужными
Декларативность (не последовательная, но, например, нет цирка с добавлением свойств новых свойств экземпляру класса, свойства декларируются в описании класса)
https://norvig.com/python-lisp.html
Basically, Python can be seen as a dialect of Lisp with "traditional" syntax (what Lisp people call "infix" or "m-lisp" syntax). One message on comp.lang.python said "I never understood why LISP was a good idea until I started playing with python." Python supports all of Lisp's essential features except macros, and you don't miss macros all that much because it does have eval, and operator overloading, and regular expression parsing, so some--but not all--of the use cases for macros are covered.
http://www.paulgraham.com/lispfaq1.html
I like Lisp but my company won't let me use it. What should I do?
Try to get them to let you use Python. Often when your employer won't let you use Lisp it's because (whatever the official reason) the guy in charge of your department is afraid of the way Lisp source code looks. Python looks like an ordinary dumb language, but semantically it has a lot in common with Lisp, and has been getting closer to Lisp over time.
> Same shit
я знаю что такое сейм шит. и я тебе говорю, что ты даже сам не понимаешь что говоришь, когда заявляешь что питон и сл сейм шит.
> Если для тебя Hunchentoot - "какая-то там библиотека",
ну да, какая-то библиотека, я же не веб девелопер ебаный.
> Любопытные проекты, чё. По твоим меркам их тоже быдлокодеры писали?
блять, чел, 100% функциональщину ты найдешь только в хаскелле.
не, ну да, раз в сл можно использовать циклы и присваивание, все, пиздец, это то же самое что и питон, ну а хуле, все же языки с присваиванием и циклами одинаковые.
пиздец, ты видел код на обоих языках, точно? они сука пишутся абсолютно по-разному. сейм шит можешь засунуть себе откуда взял, заебали уебки которые думают что все вокруг одинаковое, потому-что разделяют какие-то общие свойства. нахуй так жить?
> you don't miss macros all that much because it does have eval,
этот норвиг сломался, несите нового.
я писал на обоих языках, в отличие от норвига, который питон видимо только издалека видел когда тот только высирался гвидоном на свет, и отчетливо понимаю, что оба процитированных высера не отражают реальности НИ-ХУ-Я. то что питон спиздил какие-то фичи из лиспа не делают его ничуть похожим на лисп. самантически? какая-нахуй семантика, лол?
про макросы и евал это вообще рофл ояебу
>блять, чел, 100% функциональщину ты найдешь только в хаскелле.
100% ФП не работает за пределами факториалов, а потому не нужно. А если работает, то потому, что возвращается к тому, от чего пытается дистанцироваться (то, что называется do-нотацией).
>не, ну да, раз в сл можно использовать циклы и присваивание, все, пиздец, это то же самое что и питон, ну а хуле, все же языки с присваиванием и циклами одинаковые.
С чего бы ты решил, что для меня Python-like - это только циклы и присваивания? Ты забыл, что у обоих языков:
1. Автоматическое управление памятью
2. Динамическая типизация
3. Интерпретируемость
4. Наличие REPL с интроспекцией
5. Лексическая область видимости (напоминаю, в Emacs Lisp она по-умолчанию динамическая)
Если выебываться, можно еще добавить аппликативный порядок слева-направо (для сравнения: в Scheme и OCaml порядок аппликации вообще не определен).
Я на крестах оказывался в аду указателей и издежек типизации, так что для меня первые два пункта существенны, чтобы говорить о схожести языков (схожесть языков состоит в том, что решения задач логически схожи). Думаю, можно и не говорить, что по синтаксису сравнивать языки могут только вкатывальщики, ибо логическое содержание кода от синтаксиса не зависит (разумеется, если речь не о, мать его, Perl).
>пиздец, ты видел код на обоих языках, точно?
Видел разный питонокод. CL в продакшене не видел и, скорее всего, не увижу, но открытые проекты почти всегда создают впечатление, что люди пытаются воспроизвести на CL качественный Python-код. К книгам типа On Lisp этот код имеет довольно далекое отношение. On Lisp и подобное зачитывают задроты, пишущие библиотеки макросов.
>>275825
>самантически? какая-нахуй семантика, лол?
Внезапно, буржуи называют семантикой логическое содержание кода. Это только пидорахи могут назвать семантикой что угодно, вплоть до отождествления с синтаксисом.
>про макросы и евал это вообще рофл ояебу
Это сейчас за его использование в продакшене ебут, а в то время eval действительно применялся. Изначально именно им и делались лямбды. Гвидо их ввел в язык из-за того, что через eval их реализовывали все, кому не лень.
Вот так это выглядело:
def fn(form):
args, body = form.split(":",1)
exec('def f(' + args + '):return ' + body)
return eval('f')
>блять, чел, 100% функциональщину ты найдешь только в хаскелле.
100% ФП не работает за пределами факториалов, а потому не нужно. А если работает, то потому, что возвращается к тому, от чего пытается дистанцироваться (то, что называется do-нотацией).
>не, ну да, раз в сл можно использовать циклы и присваивание, все, пиздец, это то же самое что и питон, ну а хуле, все же языки с присваиванием и циклами одинаковые.
С чего бы ты решил, что для меня Python-like - это только циклы и присваивания? Ты забыл, что у обоих языков:
1. Автоматическое управление памятью
2. Динамическая типизация
3. Интерпретируемость
4. Наличие REPL с интроспекцией
5. Лексическая область видимости (напоминаю, в Emacs Lisp она по-умолчанию динамическая)
Если выебываться, можно еще добавить аппликативный порядок слева-направо (для сравнения: в Scheme и OCaml порядок аппликации вообще не определен).
Я на крестах оказывался в аду указателей и издежек типизации, так что для меня первые два пункта существенны, чтобы говорить о схожести языков (схожесть языков состоит в том, что решения задач логически схожи). Думаю, можно и не говорить, что по синтаксису сравнивать языки могут только вкатывальщики, ибо логическое содержание кода от синтаксиса не зависит (разумеется, если речь не о, мать его, Perl).
>пиздец, ты видел код на обоих языках, точно?
Видел разный питонокод. CL в продакшене не видел и, скорее всего, не увижу, но открытые проекты почти всегда создают впечатление, что люди пытаются воспроизвести на CL качественный Python-код. К книгам типа On Lisp этот код имеет довольно далекое отношение. On Lisp и подобное зачитывают задроты, пишущие библиотеки макросов.
>>275825
>самантически? какая-нахуй семантика, лол?
Внезапно, буржуи называют семантикой логическое содержание кода. Это только пидорахи могут назвать семантикой что угодно, вплоть до отождествления с синтаксисом.
>про макросы и евал это вообще рофл ояебу
Это сейчас за его использование в продакшене ебут, а в то время eval действительно применялся. Изначально именно им и делались лямбды. Гвидо их ввел в язык из-за того, что через eval их реализовывали все, кому не лень.
Вот так это выглядело:
def fn(form):
args, body = form.split(":",1)
exec('def f(' + args + '):return ' + body)
return eval('f')
>100% ФП не работает за пределами факториалов
Работает. IO a = State RealWorld -> (State RealWorld, a)
>то, что называется do-нотацией
Это просто синтаксический сахарок к (>>=)
Дальше не читал.
короче, я окончательно убедился: ты долбоеб. я даже отвечать на этот высер не буду.
Наоборот, пусть в город приезжает, его ждут
да нахуй он сдался
братишка, а теперь пару репрезентативных кусков кода для этого покажи, что бы так, чисто суть уловить
У меня весь гуи-код в кучу навален, ничего в нем хорошего сейчас не увидишь. Лучше примеры в репе самого clog'а посмотри.
ок
Наверное лучше чем ничего.
А на чем? Кути и wx написаны на недоязычке без ABI. Gtk никто не станет использовать за пределами *nix. А tk просто всратый.
Но если шанс что я попаду в интересный круг людей от этого значительно повышается, может быть стоит рискнуть.
Хотя в чатиках я пока вижу не очень однозначных людей. Всяких душных узколобых дедов. Это точно не та аудитория с которой хотелось бы работать в одной команде.
Думаю, что от работы надо кайф искать, и по возможности высокую зп. Собственно, сейчас stackoverflow показывает, что на кложе самая высокая зп и это второй язык как "любимый".
Короче, че скажешь, анон. Стоит ли игра свеч?
Ну, ты точно зелёный, но пока не ясно: толстый или слишком юный
>Думаю, что от работы надо кайф искать
Тогда ищи интересный проект, а не работу "программистом на языке".
Я просто восторженка-инфантил. Нет детей, кредитов, целей на далекое будущее.
Интересно программирование как сама суть, а не как решение бизнес говна. Но платят деньги за бизнес. А работаю я сейчас в месте где зарплатные челы заправляют, и на попытку выйти на диалог про код вне рабочего времени они тупо шлют.
Я думаю надо искать вместе. И интересную технологию, и язык, и интересный проект. Но реальность конечно такова, что получишь либо что-то одно в лучшем случае, либо хуй за шиворот и щеку одновременно.
Поэтому можно только увеличивать шансы разными способами:
- на кложе платят много
- на лиспы идут заинтересованные умные люди
Профит? Звучит как да.
>Кути и wx написаны на недоязычке без ABI
Биндинги? Ну, это я загнул, да, просто то, что первое в голову пришло. Но если нет либы, то почему бы не написать? Да, нужно быть отбитым долбоёбом, которому больше всех нужно, но всё же? И это я ещё не знаю, как та ось на лишпе работает. Может там они уже написали гуй-либу?
Ещё про браузеры была мысль. Думал попытаться в дополнение к игрушечной ОС, что в универе писали, попытатся свой браузер написать. Только не с JS в качестве языка скриптов, а Scheme. Никаких асидов3, просто попытаться заставить локальный интернет на своём компе работать на схеме. Бровсер на лишпе, конечно же (но чувствую, что тормозить будет безбожно). Может быть лучше кресты, но тогда за свою жизнь я точно даже самый маленький MVP не напишу.
>Gtk никто не станет использовать за пределами *nix
Братан, ты не поверишь
https://www.gtk.org/docs/installations/windows
Я совсем новичек и не понимаю, scheme типа нельзя использоваться на windows?
Всё просмотрел, попадаются только ссаные .tar файлы, которые, как я понимаю для линукса.
Никогда линуксом не пользовался и отвращение к этой операционной системе. Можно как-то учиться по sicp используя scheme на винде?
Можно.
https://download.racket-lang.org/
https://docs.racket-lang.org/sicp-manual/Installation.html
> Никогда линуксом не пользовался и отвращение к этой операционной системе.
Просто ты говноед.
>Вот типа я напечатал 1 букву и он сразу же на диск должен сохранить.
Твой диск будет не в восторге.
Я пользователь, мне ехать с шашечками.
>April compiles a subset of the APL programming language into Common Lisp. Leveraging Lisp's powerful macros and numeric processing faculties, it brings APL's expressive potential to bear for Lisp developers. Replace hundreds of lines of number-crunching code with a single line of APL.
Всем APL, посоны
Пасиб, обрезанного глючного кастомного русского APL уже нажрался в универе. Мне хватит. Даже асм лучше, чем это.
>Ты как-то апл используешь, кроме recreational programming(борщехлебства)?
Пока что никак не использовал, до этого момента не находил, куда его можно применить. Всё-таки это не язык общего назначения.
>в чем смысл лиспенного апл
Это же охуенно, теперь можно будет тонны числодробительного лиспокода заменять одной апловской строчкой.
Ещё бы подсахарить макросом чтения, добавить поддержку в емакс и sb-simd прикрутить...
Что посоветуешь?
ХЗ, что тебе посоветовать. Задачки с projecteuler порешай.
>Нужно что-то полезное, но чтобы кложа раскрылась как язык.
Кложа взлетала только как язык фронтенда, в любом случае придётся в жабаскрипте ковыряться.
> Кложа взлетала только как язык фронтенда, в любом случае придётся в жабаскрипте ковыряться.
Ну хз, вроде слышал данные обрабатывают. Бэк обыкновенный бизнесовый пишут.
Посмотрел я на этот ваш апл, какой-то быдлокодерский недоязычок типа пхп
https://www.gnu.org/software/apl/APL_demo.html
так ты просто говно какое-то нашел
вот это посмотри
https://www.youtube.com/watch?v=a9xAKttWgP4
апл - это такой эксель здорового человека
с пхп сравнение бездарное
В википедии написано, что это функциональный язык. Но как он может таковым считаться, если в нем даже ФВП нет? Даже в пхп есть
Или у меня лыжи не едут?
fib ← {⌽1↓(+/∘{2↑⍵},⊢)⍣⍵⊢1}
fib 10 # Работает
fib {4_000_000≤⊃⍺} # ХУЙ
ЧЯДНТ?
Это APL, сучка! Чувствуешь мощь? На самом деле, это не очень идиоматичный говнокод, пока ещё не разобрался, как написать по-нормальному
>Чувствуешь мощь?
Кстати говоря... Аппликативность? Чек. Дефолтный аргумент для функций? Чек. Отсутствие циклов? Чек.
Вот его можно заюзать для генетического перебора программ. Хотя у меня была немного другая идея. Представлять код не как обычно, а как последовательность упрощённых диффов. Типа каждая инструкция - это не инструкция программы, а пара из: некоторого id, который говорит в какую точку дерева кода вставить данную операцию; и собственно самой операции. Таким образом, хоть код и будет огромной нечитаемой кучей дерьма, зато его можно будет сравнительно просто скрещивать. Опять же, возможно с APL ещё проще, потому что аппликативные языки в этом плане ебут всех.
А APL - не turing-tarpit? Кто-нибудь на нём КРУТОЕ и БОЛЬШОЕ писал? Или это прямо excel и всё?
раз есть коммерческий dyalog, значит есть какой-то спрос
> tarpit
> difficult to learn and use because it offers little or no support for common tasks
в том же диалоге есть стандартная библиотека, ты можешь работать с данными итд. апрель тем и мал и годен, что все это дерьмо на себя берет коммон лисп.
хз про большое и крутое.
>man операторы
А где этот самый ман? Мне кроме aplwiki ничего хорошего не попалось. Да и та полнотой не отличается.
я читаю https://xpqz.github.io/learnapl/intro.html
есть еще https://tutorial.dyalog.com/next.html, но мне не особо формат зашел
Видел. Тоже полнотой не отличается. Там даже про вилочную композицию не пишется. Но оттуда я узнал про ⍣.
а, ну братан, тогда тебе нужен очевидный dyalog apl manual, хуле ты как вчера родился
https://www.dyalog.com/documentation_180.htm
>>291809
зависит от реализации, в диалоге вроде такое есть, в апреле хуй знает
>предательского аски-нацизма
АСКИ НАЦИЗМА? ОХУЕТЬ БЛЯДЬ!
Если что, я тот челик сверху, что ляпасом давился. И мы были одной из первых групп, что получили компилятор с ОСОБЫМИ символами. А как их вводить ебитесь сами. J лучше тогда, в этом плане. И всегда будет лучше. Из-за ascii, да.
Имакс теперь дефолт-инструмент? Нет? А вот аски да.
Так же как текстовые логи vs бинарные логи. Одна из многих причин, почему systemd - говно, хотя и решает какие-то там очень древние проблемы инит-скриптов. Всё равно говно.
просто надо помнить что код гораздо больше читается, чем пишется. и на Ж жаловались именно из-за похеренной читабельности (да, именно похеренной), как мне помнится. да и емакс я в пример привел. ну и что что не дефолтный? эксель вот дефолтный и кому от этого хорошо?
>да, именно похеренной
Охоспаде.
Да, я знаком с утверждением, что человека такая скотина, что ко всему привыкает. Нет, я с ним не согласен.
APL - это пиздец. У него слишком кратко записываются операции. Ляпас в этом плане ещё больший пиздец: у него ещё память нужно вручную менеджментить. И "плотность смысла" в коде скачет очень сильно в обоих языках.
Да, код пишется больше на читателя. Именно поэтому APL - не то. Я согласен, что он для чего-то наколеночного. Для программирования со скоростью мысли. Но поддерживать это? Увольте. Личное мнение, да, но вселенской истины за душой не имею. Что есть то есть.
Да, не, я отчасти согласен. В пример, ¯6 для acosh или 2 для косинуса - это уебанство. Но это мелочи, которые можно иправить. Мне апл понравился из-за семантики - бродкастинг тот же. Базовых функций и операторов - на две страницы по сути https://docs.dyalog.com/18.0/CheatSheet - Nomenclature - Functions and Operators.pdf
Векторный стиль многого стоит, и я его предпочел бы луп лапше в большинстве случаев. Если знаешь АПЛ, не вижу смысла его не использовать если есть возможность. Не для мегапроектов, конечно, но именно для вкраплений как ДСЛ, самое то. Поэтому апрель и годен. Еще нужную семантику добавит автор, что бы ридер макросами можно было пользоваться без пота, и будет збс.
> и на Ж жаловались именно из-за похеренной читабельности
Да это синдром утёнка. Код на J такой же читабельный как и на APL
>APL - это пиздец. У него слишком кратко записываются операции.
Пиздец не потому, что операции односимвольные, а потому, что они перегруженные. Почти у всех минимум по две интерпретации: монадная и диадная.
Двачую за апрель, это как sed в мире лиспа. Ещё бы научить его раскрываться в код на series, был бы крайне полезной штукой.
Ниет. Но я всё ещё пишу в виме, ага. И я не думаю, что кто-либо пишет на лиспе, чтобы заработать, поэтому инструмент у каждого может быть свой. Не обязательно EmacsOS.
Мне тут было лень писать хороший код и я наговнокодил интуитивно.
Что-то такое: https://pasteall.org/DQ6C
Вопрос в следующем: где-то уже видел такое, чтобы функция передавала внутрь другой функции саму себя и таким образом делала надстройку над поведением первой. Вроде бы похоже то ли на декораторы, то ли на продолжения, то ли на инверсию зависимости, то ли просто на говно. Может есть какой-то дизайн паттерн такой?
напоминает паттерн /забор покрытый мочой бомжей/ шучу не шучу
> то ли просто на говно
this
совет: попробуй сделать без setf и просто посмотри как выйдет
и объясни русским языком что хочешь сделать
напоминает паттерн /забор покрытый мочой бомжей/ шучу не шучу
> то ли просто на говно
this
совет: попробуй сделать без setf и просто посмотри как выйдет
и объясни русским языком что хочешь сделать
Катаморфизм на костыляхIoC ты попытался изобрести.
Замени на loop/reduce и будет не так страшно выглядеть.
>и объясни русским языком что хочешь сделать
Хуясе требования. Возможно я написал бы лучше, если бы знал.
Пытался расширить функционал call-editor, не меняя её (потому что пробовал уже менять, типа создания макроса with-many-temporary-files, но оказалось, что :close-stream работает только в боди самого глубоковложенного макроса. Все остальные стримы не закрывались).
Почему и сказал - интуитивно. Увидел что там вызывается функция и понял что можно костыльно расширить функционал через замыкания.
Точнее так:
1. Хочу открыть неопределённо много темпфайлов, записать в них всех различный текст и закрыть стримы.
2. После чего вызвать редактор один раз для всех файлов одновременно.
3. Затем вернуть содержимое всех файлов.
И чтобы я точно не забивал гвозди микроскопом: намерение состояло в том, чтобы отредактировать редактором по выбору много текстов сразу и вернуть юзеру результат.
> совет: попробуй сделать без setf и просто посмотри как выйдет
Не могу. Изначально пытался без setf и мне мозгов не хватило. Здесь вообще можно без setf? Как?
>>293259
>Катаморфизм на костыляхIoC
Во, выглядит похоже, но я так и не понял, что такое катаморфизм. Теоркат, снова.
> Замени на loop/reduce и будет не так страшно выглядеть.
А как? Редактор должен вызываться для всех файлов сразу и я не вижу способа не вызывать его на каждый файл отдельно, если это будет просто цикл. То есть этот вызов должен быть внутри всех форм with-temporary-file (для многих файлов).
Подразумевается макрос?
не понял что делает /&key ((:initial-text initial-text) nil)/, почему не /&key (initial-text "")/?
я понимаю, что это для себя, но после :close-stream не 100% факт что темп файл уже не удалится и что ты его сможешь прочитать
крч ящитаю надо выкидывать call-editor-for-many на мороз и делать красиво:
http://ix.io/3PiG
только учти что тут такая же проблема что и выше в close-stream, лучше сделать так, но мне лень искать как считать строку со стрима
(itr (for s in streams)
(collect (read-string-from-stream s))
(close s))
сам понимаешь, я нихуя не тестил
> не понял что делает /&key ((:initial-text initial-text) nil)/, почему не /&key (initial-text "")/?
У меня малость ОКР по поводу вот таких неявных штук. Если есть форма с обозначением чётко ключа и переменной, то заюзаю лучше её. Обычное свойство лямбда-списка. Можно var, а можно (:key var).
>но после :close-stream не 100% факт что темп файл уже не удалится и что ты его сможешь прочитать
Факт. Из (describe 'uiop:with-temporary-file)
> Upon success, the KEEP form is evaluated and the file is is deleted unless it evaluates to TRUE.
Вижу, это вроде бы проще, но александрию я точно выкину.
Получается, ты просто циклом открываешь темпфайлы, вместо ограниченных форм, но потом unwind'ом всё равно их киляешь. (Странно, кстати. Первая книжка, что я читал, была PCL, но cl-fad никогда не юзал)
> У меня малость ОКР по поводу вот таких неявных штук.
ок, но все равно лучше было бы передавать "" вместо nil, что бы потом if не юзать
> но александрию я точно выкину.
щому?
> (describe 'uiop:with-temporary-file)
> If STREAM is specified, then the :CLOSE-STREAM label if it appears in > the BODY, separates forms run before and after the stream is closed.
стрим закрыл, пытаешься читать темп файл. вряд ли он удалится с времени закрытия стрима до времени попытки его открытия, но в теории это возможно. но забей.
> читал, была PCL, но cl-fad никогда не юзал
я загуглил его щас тока, в уиопе не было подобной функции. хотя ты можешь и этот фад без особых проблем выкинуть.
>ок, но все равно лучше было бы передавать "" вместо nil, что бы потом if не юзать
Дык в этом весь смысл? Опять же, видимо точки зрения разные. Мне вместо "записи всегда", но с пустой строкой по дефолту, кажется удобнее "записывать иногда", но с nil и чеком.
> щому?
Потому что большая жирная сука. Где-то читал, что в неё даже новые символы не добавляют, потому что в уже существующем коде начнутся конфликты.
> стрим закрыл, пытаешься читать темп файл. вряд ли он удалится с времени закрытия стрима до времени попытки его открытия, но в теории это возможно. но забей.
stream is closed != tempfile is removed
Файл относится к файловой системе. Стрим - это объект лиспа. Почему тебе непонятно я хз. Мне дока кажется непротиворечивой.
> в уиопе не было подобной функции
Вот поэтому я и думал, что возмножно это можно решить без голого создания темпфайла. Раз уж так решили либу ограничить, значит был смысл.
Обычно временные файлы - это открытые удалённые, они автоматически уничтожаются после закрытия последнего дескриптора.
> Где-то читал, что в неё даже новые символы не добавляют, потому что в уже существующем коде начнутся конфликты.
да, потому-что ее массово делают :use, но это не вина александрии. добавляют символы, но в неймспейсы alexandria-1 2 итд. то что она особо жирная первый раз слышу. ее все юзают, хз зачем себя мучить, это же не маргинальщина какая.
> stream is closed != tempfile is removed
насколько мне известно темпфайлы может удалить ОСь, на то они и темпфайлы. а раз стрим закрыт, то темп файл по идее тоже может и не нужен. может быть я не прав, не знаю.
> Раз уж так решили либу ограничить, значит был смысл.
уиоп это тупа утилиты для асдфа. не написали потому-что не нужно было.
>>294021
А, вот как. Я просто думал, что with-temporary-file не использует какие-либо механизмы ОС (которые удаляют файл, после закрытия дескриптора), а просто в тупую создают файл во обозначенной директории, пока выполняется код в &body макроса.
В uiop даже есть функция, которая говорит имя папочки, где временные файлы создаются.
Забыл ещё:
>хз зачем себя мучить, это же не маргинальщина какая.
Опять же, больные на голову программисты. Мне ещё иногда говорят, что я шиз, раз не юзаю boost с плюсами. А мне просто лишний груз тащить неохота. Когда появляется какая-то подзадача, которую иначе не решить (или велосипеды нагородишь), я затащу же.
Там никаких специальных механизмов: open и следом unlink. Получается анонимный файл, который существует, пока есть дескриптор.
я принципиально тащу если библиотека проверенная и популярная, даже если это 1-2 функции. зачем раздувать свой код, если можно его не раздувать. чем меньше кода, тем лучше.
ладно, я думаю каждый останеться при своем, как всегда, но и твоя позиция мне в принципе ясна.
>ее все юзают, хз зачем себя мучить, это же не маргинальщина какая.
Поддвачну этого, только недавно в тваттере опрос был
>А как?
Как-то так https://pasteall.org/zuGA
Запомни, анон: увидел котоморфизм @ расчехлил reduce быстро-решительно!
Это и без опроса было понятно. alexandria, bordeaux-threads, asdf, uiop и т.д. уже давно стали де-факто частью стандарта.
Можешь сказать откуда стрелка и compose? В стандарте не вижу, а в либах CL я не эксперт.
Стрелка и анафорическая поебота вроде есть в serapeum, можно махнуть две либы на одну
За что я и люблю борды, никто никому глаза не мозолит, нет тупых ников, нет завсегдатаев-пидорасов, а если есть, то они в принципе не выделяются из толпы. По крайней мере здесь. Спасибо вам всем. С меня как обычно. Ну и так, чисто на всякий случай, идите нахуй, тоже.
Никаких других опций кроме как борд, ирсишки, issues в гитхабе и мыльных листов нету. Потому что народу - нихуя.
В Python нет REPL, есть только shell. Так называются оболочки, которые не доросли до репла. Репл разве что в Scala и Ruby из популярных языков есть и тем до лиспового репла далеко, ближе SML/Ocaml (не помню в Haskell есть репл вообще?).
Попробуй сделать eval инструкции if, while и т.д., проблема в том, что они не являются выражениями, а в Lisp, Ruby, Scala являются. Ты можешь открыть питоновский "репл" или даже "репл" php, только слова REPL ты там не увидишь, читать может, печатать может, eval'ить не может.
Если подобного разделения не проводить, то тогда и bash можно будет REPL'ом обозвать, но мы все понимаем, что это не совсем так.
>то тогда и bash можно будет REPL'ом обозвать
Вообще-то, он им и является. Ты даже можешь явно его написать:
while true; do read expr && echo $(eval $expr); done
Каждый день этим занимаюсь в некоторой мере. А что не так? Чувствуется какой-то упрёк с твоей стороны.
Ну ты используешь наверное не как основное окружение для разработки, а так на фоне программы погонять, также как и питоновский шелл какой-нибудь. В общем не знаю, по мне так разделение между REPL скажем Lisp и Smalltalk и Shell питона, php или bash вполне очевидно. Пользуюсь по работе конечно шеллами больше, но хотелось бы в идеале, чтобы работа была с полноценным реплом всегда.
https://stackoverflow.com/a/4728147
> Expressions only contain identifiers, literals and operators, where operators include arithmetic and boolean operators, the function call operator () the subscription operator [] and similar
WTF? Но зачем так усложнять? Не проще ли было бы сделать всё выражениями?
Мне так же интересно: способность всё eval'ить / всё-есть-выражение - это критерий репла? Или только необходимое условие?
Приниципиального различия нет. Лисп концептуально чище, поэтому привлекательнее для кого-то.
Проще, но это бьёт по производительности сильно особенно, если это интерпретируемый ЯП вроде Ruby. Да и разбираться в лямбда исчислении и делать так, чтобы всё имело логику и возвращало результат наверное геморнее, чем фигачить инструкции.
>Проще, но это бьёт по производительности сильно особенно, если это интерпретируемый ЯП вроде Ruby.
Видимо, не сильно-то и бьёт, если вспомнить, что речь шла о питухоне, который даже в сравнении с руби скоростью не отличается.
Вообще ты прав. К тому же и там и там всё переопределяется в рантайме, и там и там всё есть объект и т.д. Мне лично всё есть выражение доставляет тем, что обычно оно строется на лямбда исчислении и можно глянуть исходники скажем выражения if, for и т.д, когда в языках вроде питона их принципы работы можно глянуть только в исходниках интерпретатора. То есть по всей видимости те языки, где всё есть выражение созданы на миниатюрном языке лямбда-исчисления поверх которого реализовано всё остальное. Возможно в питоне те части, что недоступны на самом питоне, а написаны на си в интерпретаторе, работают побыстрее того же самого реализованного на руби. Сейчас конечно в руби есть JIT, но по-моему он всё-таки тормознее питона.
>Сейчас конечно в руби есть JIT, но по-моему он всё-таки тормознее питона.
Руби когда-то давно был медленным, ещё до появления 2й версии, но потом они сравнялись с питоном по скорости.
Вообще, те ограничения чисто синтаксические и, по всей видимости, идеологические, мол, нехуй выёбываться этими вашими лямбдами, пишите просто.
>можно глянуть исходники скажем выражения if
В подавляющем большинстве лиспов if - это особая форма, её исходники - это исходники компилятора/интерпретатора.
>Во-первых, 2022 год на дворе и у меня макбук за 200к с SSD.
Нудык у тебя до конца этого 2022 года life left в смартах твоего SSD упадёт до нуля таким макаром.
Ты ебанутый? Сколько на по 1 букве сохранять, что бы исчерпать ресурс ссд? По 1 букве 1000 раз в секунду в течение года?
ПЫСЫ хуйню сказал, по 1 букве 1000000 раз в секунду
Чел имел в виду не в скорость работы, а в скорость отправки на помойку.
Ты будешь сохранять не букву, а весь файл целиком.
Вообще да, SSD скорее всего скурвится медленнее от такого обращения, чем HDD. Но всё равно не понятно, нахуя тебе это. У тебя питание нестабильное что ли? Каждые пять секунд свет может вырубить?
> Но всё равно не понятно, нахуя тебе это.
Чтобы никогда не нажимать C-x C-s, в 2022 файлы должны сами сохраняться.
Но вообще я подумал и понял, что можно решить с помощью super-save
> в 2022 файлы должны сами сохраняться.
В 2022м не должно быть такого атавизма как файлы, если уж на то пошло
Впрочем, вот есть дока https://www.emacswiki.org/emacs/AutoSave
И будем хранить их отдельными файликами на диске. Короче, тот чел долабаеб, предлагаю электрошок и лоботомию
Хочешь поиграть в подмену понятий?
Файл - низкоуровневая сущность, пользователю она не нужна, пользователь работает с объектами.
Ты же не задумываешься, под каким id и в какой таблице хранятся посты на дваче? Нет, ведь это задача движка.
Так же и пользователю не нужно задумываться о сериализации, это задача ОС.
в фантом-ос с этим заморочилась, тащемта
и еще, хз, но в дженере вроде какая-то подобная залупа была. но это не точно.
давайте лучше дженеру обсудим, хуле вы.
> в дженере вроде какая-то подобная залупа была
Судя по тому, что в стандарте общелиспа есть pathname, файлы там были.
Насколько мне известно, он очень близок к генеровскому. Основное отличие в flavors вместо clos
Сдохнуть от голода в бомбоубежище? А может лучше писать десктопные гуи на кложе?
https://github.com/HumbleUI/HumbleUI/
У меня в хуке при переходе в модальный нормальный режим сохранение текущего буфера, если у него есть файл. То есть как раз получается напечатал кусок - сохранил. Костыль примерно такой:
(when (and (buffer-file-name)
(not (string= (substring (buffer-file-name) -3) "gpg")))
(save-buffer))
ты бы хоть написал на чем, я вот не сразу понял что на кложе, хотя наслышан что ее в вебне используют
https://precursorapp.com/blog/clojure-is-a-product-design-tool
ну дезайнер понял что джаваскрипт говно, а кложаскрипт рулез. с просвящением его.
а так конечно очередной безыдейный продукт для синергетических стартап фаундеров, которые хотят кАллаборейтить в реал тайме со своими тиммейтами.
да и честно сказать, вебня попросту говно, любая, на чем бы она не была написана. но я все равно рад за кложеделов, они конечно не Ъ, но как никак братья по разуму.
пикрел реальная годнота на кложе тащемта кложа конпелируется в монокод для юните, поддерживается хот лоадинг
https://www.youtube.com/watch?v=tBvNIJzlWEI&t=3279s
Да нет. Просто вебмакаки высрали очередную хуйню, которая работает только на одном браузере. Вот тебе и кроссплатформенность.
>https://precursorapp.com/blog/clojure-is-a-product-design-tool
Лол, и вот такие люди рассуждают о вебтехнологиях.
Юблок, кстати, отключен. Браузер - фурифокс 68esr
для годотей там тоже форкнули. однако хуле? если ты лишпер и тебя тошнит от креcтопараш, от сишарпожав, так тут других вариков для 3д игр на лиспе нет, эта бля аркадия - это бля дарование свыше, слышь, откровение самого Аллаха.
>очередной безыдейный продукт
Не, правда удобная штука. Схемки всякие рисовать удобно, быстро взял и расшарил.
>пикрел реальная годнота на кложе тащемта
Реальная годнота на кложе - это ж датомик новое поколение вдохновленных орг-модом и zettekasten'ом баз знаний - https://roamresearch.com/ и еще как минимум один аналог тоже на кложе запилили, плюс поверх орг-мода тоже на елишпе несколько клонов запилено. Кстати >>310866 вроде тонский пилит как раз для роамресерч
Ну а так вообще на кложе много такого было, тот же circleCI на ней, status, и т.п.
Чини давай свое говно. Обколются своими екстеншонами да скриптами и ябут друг друга в веб-стандарты.
У меня тоже юблок и отключены сторонние куки, бери вилку и чини давай.
Сейчас у меня случился смутный флешбек, кстати, можешь сделать ----- и попробовать еще раз?
> Не, правда удобная штука. Схемки всякие рисовать удобно, быстро взял и расшарил.
Я такое вроде каким-то юмл редактором онлайн и без смс делал, давным давно. Ну да ладно.
> ettekasten'ом баз знаний - https://roamresearch.com/
Да, тоже годная вещь по видимому. Не знал что она на кложе. вкладка video demos отхрючила 2.5 гегоболта, 2 ядра и продолжает пердолировать держу в курсе
Нет, с крестопарашей проблем никаких, но делать видеоигры на сирешётке с её жирнючей виртуальной машиной, сборкой мусора и рантаймом размером с мамонта - это долбоебизм чистой воды.
так ты просто хейтер. и кложа там не компилируется в сирешетку если что, а прямо в байткод вм. у меня трезвый взгляд - убогокресты для лоу-левел хуеты двигла и оптимизаций, возможно каких-то дрочевных алгоритмов, динамика для написания собственно игры. абсолютисты крестовые рисуют сраные треугольники, пишут бесконечные маняфреймворки и прочую хуету, им не до игр. а те кто таки пишут, но не используют динамику - рано или поздно сами понимают что они долбоебы. маняскорость - далеко не все в этой жизни, как бы сочно фанбоям это не снилось в их влажных снах. а говорить что у крестопараши нет никаких проблем в 2к22 это я не знаю кем нужно быть.
>у меня трезвый взгляд - убогокресты для лоу-левел хуеты двигла и оптимизаций, возможно каких-то дрочевных алгоритмов, динамика для написания собственно игры
У меня взгляд точно такой же, но сирешётка - это омерзительный выпердыш раковой опухоли IT-индустрии. К счастью, эта опухоль ушла из этой страны, так что свет в конце туннеля есть.
> К счастью, эта опухоль ушла из этой страны
да, щас бы всем лисперам хуяк и в госструктуры, делать айти переворот. станем мировой столицей лиспа. за 10-15 лет перепишем весь говнософт на божественных скобках, будет дрочить в лицо все поехавшим макакам, недовольные будут собирать на заводах железо, копротивляющихся накажем отменой интернета и обязательными курсами лямбда калкулуса. всем в дом по меззано. передовая нация, нахуй. и хуй нас кто догонит. хватит с нас борщей, сука, теперь только икра!
>лисп тред
>кложа, вебхуйня, прокладки для гуишной жаба либы
>щас как залетим в тырпрайзы да госники
А что не так?
Лиспер! Хватит это терпеть!
у нас же кстати был кровавый госинтерпрайз на лишпе, емнип, в питере какая-то контора была, какое-то решение то ли по спаму, то ли по документообороты через почту, короче чет с обработкой имейлов связанное было
Ща еще перепихтонский запилит этот свой гуй и пойдем переписывать все опердени с gwt на сабж. Так победим!
> перепихтонский запилит этот свой гуй
можно поподробнее? я здесь только с конца позапрошлого треда тусуюсь.
понял
>новое поколение вдохновленных орг-модом и zettekasten'ом баз знаний
Олсо, ты мне напомнил, что моя параша недописанная лежит. Ну как, основную часть я сделал - это было очень просто. А вот демонстрационные юзерконфиги на лиспе - нет. Потому что это нужно бд придумать и сделать, и инторфейс комманд для CLI должен быть норм. Поэтому даже простую еболу из двух-трёх таблиц всё не могу запилить.
Ну да, юзеру моей проги пизда. Хотя я знал это с самого начала. Проблемы полной кастомизируемости и CLI.
where is Jessica Hyde
Роам и логсек же на кложе, а не на кл...
>>259321
>Считай что мне нужен конструктор для сборки crud приложений
hyperfiddle еще глянь
а, уже советовали
Вообще вот эта шняга что ты описал, ну про чеки и чтоб потом добавить калорийность, и чтобы при этом это все было юзабельно и декларативно, это конечно очень сложно спроектировать так, чтобы это все работало.
Опа, выкатили clasp 1.0
Это реализация общелиспа на llvm, если кто не знает.
Интересно, сильно ли ещё отстаёт по скорости генерируемого кода от sbcl
Плюсовый кал не взлетит. Лучше бы написали в стальбанке неконсервативный сборщик для хуй86.
>llvm
>..vm
Знаешь почему я не люблю джаву? Не из-за языка, язык-то норм.
Намёк: кложуру я не люблю тоже.
LLVM дает все средства для статической компиляции, VM там по означает не совсем то, что ты думаешь, хоть и слова те же. Но вообще грамотный трассирующий JIT (тот же LuaJIT) даст пососать среднему оптимизирующему компилятору (тот же go).
>не совсем то, что ты думаешь
Да-да, вторая самая сложная проблема программирования. Сразу после инвалидации кэша. Понел принел
Только что ебался полчаса с rl:write-history из cl-readline, пока не понял, что
a) оно хочет только строки
b) оно не открывает "~" само
Так что ты не далёк от правды.
https://github.com/Tensegritics/ClojureDart
>Beta release before Easter 2022
by https://github.com/cgrand - это мощный чувак, так что ожидается годнота
Речь о флаттере. Чтобы пилить десктоп\андроид гуи.
Он там рисует виджеты на канве что ли? Пиздец. Нахуя? Основные проблемы жаба-гуя ― практически никакая интеграция с ОС и рабочей средой и всратыйинородный вид. Он их не решает, а просто пилит ещё один нескучный велосипед с квадратными колесами.
Во-вторых, фреймворк на кложе? Серьезно? Жвм и без того слишком прожорлива и нерасторопна для десктопа, а с этой йобой небось у калькулятора запросы будут как у эклипса.
Короче, не разделяю твоего восхищения. 10 ёбаных хистеров из 10.
Я думал, тонский этот хуюмблуи в свободное от работки время пилит от нехуй делать.
Без аннотаций типов дающих возможность компилятору избегать дженерик вызовов цирк с fxvector и fxremainder не считается, рабочего disassemble и dynamic-extent чех-схема твоя сосёт с проглотом у CL.
Алсо, в статье автор подсуживает схемке - код на ней более хитровыебанный с самого начала, потому что сохраняет уже посчитанные праймы, ясен хуй он быстрее будет. Но вообще статья хорошая, плюсанул.
> хуюмблуи
щето? ну хочешь ты кого назвать доблюдоебом, так назови его распижопошником, какой еще хуеплут?
>>331195
Вот какой результат показал бы коммон лишп это интересно. Хотя как-то похуй даже, и так давно всем ясно что для чего лучше подходит. Ну как всем, лисперам: СЛ для всего, кроме тех мест где нужна сишка.
Кстати вот кто-то сравнивает лиспы, но там дилетантские бенчмарки, но все равно, может кому интересно:
https://jakob.space/blog/thoughts-on-lisps.html
а, я прочитал как "это хуюмблуй" вместо "этот"
https://www.youtube.com/playlist?list=PLAC43CFB134E85266
(другие плейлисты тоже есть смысл глянуть)
Братан, ты не представляешь, как остоебенели эти туторилы для начинающих в кложе. Я, блядь, к скобочкам привычен, что такое биндинги переменных, знаю, и с иммутабельной парадигмой давно знаком. А вот чтобы нормальный туторил по рефрейму сделать, для людей, которые об современный жабоскрипт особо никогда не шкварились, так нет, это ну его нахуй, лучше в миллионый раз нуфаням объяснять, как факториал мемоизировать.
>У нас тут вообще-то ИНТЕРПРАЙС, СТАБИЛЬНОСТЬ, ОБРАТНАЯ СОВМЕСТИМОСТЬ.
В кожуре-то? Ну если только после того, как лохматый на неё окончательно забил
https://libgen.is/book/index.php?md5=981A7C35F1424F5F736593D6BCD07EA5
Да, для вката в CL самое оно. Правда, перевод несколько лохматый, потому что его делала толпа разных людей.
> Плюсовый кал не взлетит.
Понимаешь, это как копрофилия. Просто говно никто конечно воспевать не будет, суть копрофила в том что бы попросить партнершу навалить ему на грудь а потом размазать все это сиськами по его телу. Другими словами, в узких кругах класп таки взлетит.
Я хочу уточнить, что бы было все предельно ясно.
Короче, когда няшная тянка начинает размазывать сьськами кал по телу, копрофил начинает неистово дрочить и облизывать эти самые сиськи. Иначе нещитово.
Ну это я так уточнил, вдруг кто-то не понял. Калсп точно в тренде будет.
Нет, насколько мне известно. А что за клоун?
Мне нужно скомпилировать и запустить scheme
Пытаюсь через емакс, всякий раз пишет searching for program: no such file or directory, scheme
Как мне правильно компилировать и запускать через него?
Попробовал guile, он создает scm.go фаил, но опять же, я не понял как его запустить, хотя уже перетыкал все флаги в man. И несмотря на -L он все время сохраняет scm.go в дирректорию самого guile, а не куда я указываю.
Debian 11
Помогите, я тупой
мугугугугумнядь какой же ты мудак конченный я хуею...
>Пытаюсь через емакс, всякий раз пишет searching for program: no such file or directory, scheme
Установи в емаксе geiser, настрой geiser-default-implementation в 'guile. Это для разработки, для развёртывания, чтобы много не ебаться, сделай, например, так: https://stackoverflow.com/a/37776400 (у всех твоих игроков должен будет быть предустановлен guile).
Чо не смог просто portacle распаковать?
Не видишь чтоли
> Debian
Заодно реквестирую картиночку с лого дебиана, переделанное в слоупока, свою потерял, а в гуглкартинках не нашёл
Нерелейтед, но. Как вариант попробуй рэкет, все-таки там сразу все настроено, ну и для создания простых игрушек он годится, вроде бы даже книжка какая-то на эту тему была.
Повторю, что начал я всё это дела не для какого-то профита, а из интереса.
Если ты такой тугой, начни с SICP.
ток не емакс, прошу
Тут все в емаксе прогают, но раз ты не осилил, посмотри этот список в кукбуке: https://lispcookbook.github.io/cl-cookbook/editor-support.html
>Тут все в емаксе прогают
Но-но! Вимогоспод, не переваривающих слайм и органическую парадигму, прошу не забывать.
> Вимогоспод, не переваривающих слайм
Вообще-то есть SLIMV и VLIME. Или ты назло мамке отмораживаешь уши?
> и органическую парадигму
Было написано для господ на бронепоезде.
А вот про "отмораживание ушей" я бы поспорил. Ещё Макконел в совершенном коде писал, что надо использовать язык программирования как инструмент, а не как парадигму (это было, когда он описывал свой опыт с Visual Basic, номер страницы и издания не помню).
Ебал я вашу органическую парадигму, когда нихуя не воспроизводится и ты не можешь быть уверен в состоянии образа, когда что-то туда пихаешь. А каждый раз проверять какие символы уже там, а какие нет, меня заебёт.
Нет, пчел, лисп мне нужен из-за его гомоиконичности и уникальных возможностей макросов. IDE и свой единственно правильный стиль программирования можешь в жопу себе засунуть.
Ну, для начала, paredit впадает в эпилептические припадки, когда я юзаю S или Vcc. Это забавно. Нахуй он пошёл, значит.
А вот нагромождение окон, которые появляются на каждый чих - это нихуя не забавно. И leader-команды, на которых пальцы можно сломать тоже.
Но, как было сказано проповедником из ЖЖшечки: юзайте и да придёт магия. Но чувстую я, что магия сегодня скосплеит Мисаки ирл. I.e. не придёт.
> Тут все в емаксе прогают, но раз ты не осилил, посмотри этот список в кукбуке: https://lispcookbook.github.io/cl-cookbook/editor-support.html
>>366281
> Попробуй doom emacs, если не осиляешь настроить.
А потом удивляются, чё все помимо кложи в луже валяется узких кругах только известно.
Согласен с аноном выше - нахуй не нужно это красноглазие, я в лисп пришел за мощью языка, а не средств написания его.
Пиздец, за такое количество времени не сделать ничего похожего на человеческие промышленные иде - реально идея гну настолько выше здравого смысла?
я тащемта осилятор, вим основной редактор и че надо настрою, но красноглазить не буду из принципа, идите в пизду
>все помимо кложи в узких кругах только известно.
>помимо кложи
Скала, потому что тоже jvm, потому что тоже взлетела на волне интереса к фп в 2010-2015 и потому что по итогу тоже никому нахуй не нужна, но не настолько как кложа
> когда нихуя не воспроизводится и ты не можешь быть уверен в состоянии образа, когда что-то туда пихаешь. А каждый раз проверять какие символы уже там, а какие нет, меня заебёт.
Алсо, ты там ещё и asdf не осилил что ли? Какой запущенный случай...
>Ну, для начала, paredit впадает в эпилептические припадки, когда я юзаю S или Vcc
Блядь, да возьми ты настоящую IDE, вместо того чтобы изъёбываться и писать код в текстовом редакторе с мокрописьками. В емаксе же evil-mode есть, всё для людей, нет блядь, не хочу для людей, хочу в блокноте из семидесятых код писать, пидоры блядь
Почему? Ридер-макросы может быть. А обычные-то как?
>>368411
Не угадал. Первое, что осилил. Но как перезагрузка всей системы в образ отличается от моего старого способа программировать? Нахуя мне ваш слайм тогда?
>>368702
Лел.
> Вообще-то есть SLIMV и VLIME
> Блядь, да возьми ты настоящую IDE
> швабода выбора я сказал
Знал, что лисп-хакеры тоталитаристы ещё когда познакомился с ЕДИНСТВЕННЫМ ПРАВИЛЬНЫМ КОДСТАЙЛОМ ЧТОБ СВОЙ НЕ СМЕЛ ПРИДУМЫВАТЬ УУУ СУКА. Но это я ещё переварил.
А вот то, что ты сейчас спизданул, смешно вообще. Пальцы в имаксе сам ломай. Или скажешь, что ивлмод покрывает все юзкейсы? Даже слайм?
И электроноговном ("настоящая" IDE) тоже можешь сам себе очко щекотать.
> всем похуй
> яростные попытки копинга в треде
> "отмораживаие ушей" ака "я умный, ты тупой, яскозал"
> всем похуй
> Или скажешь, что ивлмод покрывает все юзкейсы?
Да.
>Даже слайм?
Братан, ты не поверишь: https://github.com/emacs-evil/evil-collection/blob/master/modes/slime/evil-collection-slime.el
> И электрон
Настоящая IDE - emacs, электроном сам в попку пердолься.
> Но как перезагрузка всей системы в образ отличается от моего старого способа программировать?
Какой-то ты совсем дубовый. Ты описал проблему:
>каждый раз проверять какие символы уже там, а какие нет
>нихуя не воспроизводится
Решение - описывать asdf-систему(ы) и пакет(ы). А программируешь ты со слаймом или перезапускаешь каждый раз образ или тестируешь свой говнокод исключительно на свежекупленном железе со свежеустановленной ОС -- дело десятое.
>Нахуя мне ваш слайм тогда?
Тебе выше кидали ссылку, где хипстор-кложурист(!) объясняет, что такое репл, зачем он нужен и как с ним программировать. Объясняет для совсем тугих джавистов.
вкатываться можно с ANSI Commo Lisp by Paul Grahm
и кстати у бумажной PCL книжки переплет очень неудобный.
я сам заказал 2 года назад и в итоге прочитал с экрана ((((((ёёё
Я человек далёкий от программирования, работаю проектировщиком в Авоткаде(если конкретней Plan 3D) . Но у меня возникло желание написать макрос облегчающий работу. По тем урокам, которые я нашёл, делать это надо на языке AutoLisp. В целом как писать нужный мне код понятно, вопросов нет. НО возникли большие сложности с проверкой того что я сделал. Пишу я это всё в встроенном в автокад Visual Lispe'е и вроде как он идеально подходит для этих целей, но у меня регулярно случаются краши программы на пустом месте, та часть кода, которая секунду назад давала нужный результат, при повторном запуске не работает и всё в таком духе.
Кто-нибудь сталкивался с подобным?
>Логики правда не понял.
У тебя весь этот код исполнялся при загрузке, потому и падало. Ты обернул в defun - он скомпилировался как функция.
ты сам-то проверял свою ссылку?
Извините, а какая разница?
Вообще в Visual Lispe есть возможность подгружать только выделенную часть кода, что я и делал. И даже когда всё было прописано правильно, он падал. Теперь я просто в функцию добавляю строки и так же частично подгружаю.
>почему писать на лиспе под винду такая хуйня?
ОС для домохозяек же, хули. Программировать под ней на любом языке - боль и страдание.
>ваши имаксы и прочая залупа типа квиклиспа тоже ставится через жопу (если ставится вообще)
quicklisp ставится без проблем, у него зависимостей ноль, а с емаксом чуть сложнее: https://github.com/doomemacs/doomemacs/blob/master/docs/getting_started.org#on-windows
>Программировать под ней на любом языке - боль и страдание.
Да. Но мне нужны программы виновные была бы моя воля, я бы жил на линухе
>Извините, а какая разница?
Разница в том, что код загружается, когда ещё не на чем рисовать эти полигоны. Потому у тебя и падало при повторном запуске. По крайней мере, я так предполагаю, самого автокада в жизни не видел.
wine/wsl
>почему писать на лиспе под винду такая хуйня?
Потому что винда хуйня, очевидно же.
Возьми васякод: https://lispcookbook.github.io/cl-cookbook/vscode-alive.html
>Может это была не лучшая книга для вката?
Устаревшее ненужное говно так-то, но почитать все равно интересно (для вката не подходит).
Алсо не вкурил кошерности вашего СL и sbcl. Как по мне, sbcl самый хуйовый компилятор, какой только можно сделать. Мб он популярен, ибо единственный по сути. Кстати, с каких хуйов это компилятор, я тоже не понял, скомпилировать что-то на нем хуй что получится. Единственное, что плюс минус зашло - схема, особенно курица схема. Может быть еще racket - дохуя пакетов, свой roco. Но парадигма языково-ориентированного программирования не вставила. Для меня рэкэт это схема с расширениями.
Алсо ебал шлюх, которые всерьёз топят за имакс. Ебаное старое неудобное лагающее говно
Такой себе наброс, попробуй тоньше и более точечно
> с каких хуйов это компилятор, я тоже не понял, скомпилировать что-то на нем хуй что получится
см. тж. save-lisp-and-die
> save-lisp-and-die
лолбля. это не компилирует прогу, а создает ОБРАЗ. Сохраняет сессию REPL в исполняемый файл. Как пояснили на буржуйских АИБ, почему хеллоуворд весит 20 мб:
>Can't be avoided. You need the whole interpreter in their otherwise it won't work.
> Common lisp requires that a full interpreter be available at any point in the program's execution.
> For the most part this is useful as it means a running program is the exact same as an interpreted one, but if you were to limit the features of CL that you use and try to do some black magic behind the scenes you could probably decrease it.
> The consensus in the CL community seems to be that 20MB of disk space isn't worth the hassle and it's easier for everything to just work™.
На chicken sheme я могу запустить csc <file> и у меня будет 127кб исполняемый хеллоуворд. Потому что курица это компилятор, а sbcl хуйня на палочке
Мамка твоя хуйня на палочке. В бинарнике, порождённом save-lisp-and-die, есть весь лисповый ранайм вместе с самим компилятором, и ты можешь вызывать в нём тот же compile, чтобы на лету лисповый код, например, из ресурсов приложения, компилировать в выполняемый процессором код. Твой стокилобайтный хеллоуворлд так же может?
> есть весь лисповый ранайм вместе с самим компилятором
я тащемта об этом и писал
> чтобы на лету лисповый код, например, из ресурсов приложения, компилировать в выполняемый процессором код
useless говно без задач
> useless говно без задач
Ну ты просто залётный пацанёнок, который даже не знает главную киллер-фичу лиспов DSL
>киллер-фичу лиспов DSL
Дсл во всем лучше клепать на основе экселя, нахуй иди с лисповскими дсл, фанбой.
Знаю, но это тоже useless говно. Вот метапрограммирование заебись
Ты что на доске программистов забыл, секретарша?
> Я так понимаю, тут никто ничего другого, кроме кложи не рассматривает? Почему?
Все другое еще более мертвое же, ну и просто не дает никаких принципиальных плюшек относительно мейнстримных языков. лет зе сратч бегин
>Потому что джава и энтерпрайз?
Потому что жс и хипстота же!
Семантически он близок к Лиспу. В JS функция это объект первого класса. Netscape наняли Эйка для того чтобы он реализовал Scheme в браузере. Поэтому JS унаследовал его фичи.
>Какой функциональный язык наименее мертвый?
Все живые. Наиболее живые на мой взгляд, в порядке убывания: F#, Haskell, Clojure, OCaml, Erlang. F# самый живой, потому что крутится на .NET 6.
>>390943
Хуйня, JS - такой же лисп, как C++. https://journal.stuffwithstuff.com/2013/07/18/javascript-isnt-scheme/
>F# самый живой, потому что крутится на .NET 6.
На хую господина Сатьи он крутится. Про стратегию трёх E слышал, болезный?
Туда ли ты зашёл, петушок?
>Почему все говорят, что джаваскрипт это лисп?
Не "лисп", а "лисп для бедных". Потому что eval, repl, интроспекция и компилятор в рантайме.
(кроме познания вселенского дзена, хотел бы знать о практическом применении)
Толстовато. Ты ж сам выделил "the compiler".
Кстати, по поводу пикчи. Коммерческие реализации умеют создавать маленькие исполняемые файлы.
Нихуя это не траллинг. SBCL это интерпретатор. То, что камон лисп это компилируемый язык это придумали ущербные лисповоды, которые не могут смириться с тем, что лисп такое же медленное говно как питон или пыха.
Толсто. В sbcl даже eval по умолчанию сначала компилирует код, а потом исполняет.
Какой смысл набрасывать в тонущий тред? Оп где-то проебался, перекатывайте уже тред.
>Какой смысл набрасывать в тонущий тред?
Ты же видишь по уровню наброса, что оно явно не блещет интеллектом и вряд ли старше 14-ти лет
Вы видите копию треда, сохраненную 27 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.