Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.
{Основные диалекты} :: 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 )
Кто-нибудь вообще пишет что-то серьезное на лиспах/кложе? Просто интересно, дохуя читаю что эффективность труда разработчика увеличивается, но не пойму за счет чего это достигается. И насколько эффективность увеличивается? на 5%? 10%?
>>2258558 > В сбере чет на лиспах есть. У нас несколько команд датасаентистов, пишут свои скрипты в том числе на кложуре. Но это не серьёзно, у них определённых стандартов нет, они и на хаскелле что-то делают.
Бля а то что простейшая аппка с hello world на кложе 80мб жрёт это вообще нормально? На гошечке, точно не помню, но несколько мегабайт простейшая апиха ing/pong
>>2258843 языки настолько мёртвые, что даже за 2 часа не прибежали оптимизаторы командной строки и не обоссали тебя хотя чего я удивляюсь, если тред по кложуре тупо утонул нахуй
>>2257938 >Просто интересно, дохуя читаю что эффективность труда разработчика увеличивается, но не пойму за счет чего это достигается. Я вообще мимопроходил и не профессиАНАЛьно на лиспе пишу, но могу кое-что высрать.
Во-первых, сама мощь языка. Считается, что лисп мощнее любого другого языка. С другой стороны, это же считают его проклятьем.
>>2257035 >Это именно поэтому люди не любят схему, да? Олсо, схему не любят за зоопарк реализаций (каждая со своей системой модулей), скудный стандарт, даже без циклов (что на самом деле плюс, если посмотреть на предназначение схемы), и... и вроде бы всё? Плюсов у схемы очень много. Особенно она хороша, если вместо богомерзкого lua использовать её как встроенный скриптовый язык.
>>2258979 Ну короче, опять же, звучит как то, для чего нужны конкретные примеры или попробовать самому.
Просто при написании hello world'ов, даже сложных, не очень прочувствуешь как оно, пока реальные/сложные многоступенчатые задачи не будешь решать. Чувство только тогда приходит.
>>2259050 >или попробовать самому Тока так. Или ты захотел модных статеек в медиуме/хабре про особенности разработки на МЁРТВОМ ЯЗЫКЕ? Пфф. Он же не расхайпаный, никаких курсов по нему не втюхаешь, миллионов строк легаси на нём нет, никакой корпорации за ним не стоит.
А ещё, как говорил мой препод в универе: его сложно учить, потому что встроенных символов порядка 1-2к штук, хотя синтаксиса-то и нет никакого. (Когда я пишу на крестах, то изредка залезаю на cplusplus.com, но когда пишу на CL - у меня всегда распечатанный quick reference рядом с клавой) Сложно учить => не будет тучи хомячков/вкатунов => не продашь инфоцыганство своё. Поэтому питон на коне. А лисп, как и куча других языков - в луже.
>>2259127 Ну вроде он не совсем мертв. Всё не так однозначно на самом деле. Прежде чем учить его чуть погуглил, получается что на стак оверфлоу он в топе языков для пет. проектов. Новые большие проекты таки появляются (тот же roam и logseq) которым всего несколько лет.
По количеству проектов на ГХ он несильно отстаёт от гошечки. А гошечка сейчас расхайплена шопиздец.
По популярности среди нишевых языков уступает разве что расту. Короче, какая-то жизнь определенно есть.
А так, в цело, да, ожидал статей на медиуме/хабре. В целом такие статьи в 2021 появлялись. Какие-то туториалы в ютабе есть. Короче, всё плохо, но не катастрофически плохо.
Я вот думаю об этом в таком ключе, что в таких языках где мало контента можно быстро стать звездой, если пилить какой-то типикал контент для даунов, который сейчас пилят для питона килотоннами. Конкуренция ниже. Можно сделать имя.
>>2259171 >roam и logseq СУКА! Самое главное, что прямо сейчас я тоже пишу своего рода прогу-ассистента, чтобы все свои писульки и другую инфу в одном месте хранить. Но моя очевидно лучше. /sarcasm[/spoiler]
>>2259243 Ниет. Это будет моя прелесть. Я долго думал, чего я хочу, начав просто с "Я ХАЧУ НАПИСАТЬ СВОЙ ТЕКСТОВЫЙ РЕДАКТОР!!111", и закончив вот этой хуетой. Если ты назовёшь навсткидку тот, который - Позволит хранить информацию в унифицированном, удобоваримом виде и делать запросы любой сложности по ним - Позволит создавать свой интерфейс для удобного ввода таких данных, средними партиями по 10-50 штук в день - Не будет зависеть от интернета, не SaaS - Не будет стоить ничего
>>2259264 logseq. org/md файлы на харде. Можно добавить автосейв гитом, пушить в гитхаб и создавать из записей "сайт" типа https://logseq.com/?spa=true на github pages. Хули, это поделие из электрона - обычный жабаскрипт.
> - Позволит создавать свой интерфейс для удобного ввода таких данных, средними партиями по 10-50 штук в день вот эту хуйню только не понял. Там есть возможность создавать шаблоны. > - Позволит хранить информацию в унифицированном, удобоваримом виде и делать запросы любой сложности по ним org/md > - Не будет зависеть от интернета, не SaaS org/md локально > - Не будет стоить ничего сейчас не стоит. Когда будут серверные фичи типа совместной работы, возможности хранения в облаке, etc тогда будет подписка. Но основная офлайновая версия по заявлению разрабов навсегда останется бесплатной
Алсо, написан на clojurescript, запросы пишутся также на кложе. Там либа какая-то datagrid что ли называется, но вроде как распространенная в среде clojure'истов. Есть возможность писать плагины свои. Мб как раз то, что тебе нужно, чтобы "менять интерфейс".
>>2259304 Я бы ещё добавил простой и легковесный в требования. Как vim, ага.
>>2259279 >вот эту хуйню только не понял. Там есть возможность создавать шаблоны. В этой хуйне весь прикол. Всё остальное я мог получить чисто заменив себе блокнот sqlite3 клиентом.
md хуета из под коня, до обработки. org хорош, но не в том, что мне нужно. Хотя его тоже юзаю, но надеюсь прекратить.
Считай что мне нужен конструктор для сборки crud приложений. Так будет лучше. Недавно в нюфаг-треде высирался на тему.
Смотри: Энтрилевел: обычные заметки. С таким хоть блокнот и папочки на диске справится.
Адвансед: хочу, например, инфу с чеков сохранять. Структурировано. Это точно БД, но каждый раз вводить через insert into заебёшься. Лучше, если был бы доступ к содержимому чеков через QR, но сервис закрыли для физлиц. Поэтому мне нужно сделать некоторую обложку для ввода. GUI тяжело, незнакомо и долго, поэтому я хочу, чтобы можно было CLI-based вводить поля строк в табличку.
Мастери: появляется у меня новая таска. К примеру, после учёта чеков, я захотел ещё вес скинуть. В продукты добавится ещё их калорийная ценность. Как быстра, удобно и без затрат соединить старые данные с новыми (чтобы можно было всякую хуйню делать, типа посчитать сколько один грамм белка в рублях стоит), а также обновить "вводилку" данных и добавить новые запросы к приложению?
Типа того.
>создавать из записей "сайт" А можно без браузера? Аллергия на электрон и браузерные движки, когда я хочу легковесное. Кожа струпьями покрывается. Фанатик, евангелист, верун в терминалы 80x25.
>>2259325 > orgmode org-ql. Но инсертов там нет, только вьюхи. >>2259321 > Аллергия на электрон и браузерные движки Это всё предрассудки. Браузер тебе автоматически гарантирует кросплатформенность. Фронт в вебе развивается семимильными шагами по сравнению со всем остальным миром десктопа. По количеству готовых решений в т.ч. Так посмотреть на все эти инструменты: logseq, typora, org roam - в них дохуя общего. Думаю за основу взяты одни и те же библиотеки. Короче я бы на твоем месте начал себя перебарывать. Консоль это не только неудобно, но еще и уёбищно выглядит, и порог входа высокий, и дохуя телодвижений чтобы что-то сделать.
А так да, как анон уже сказал >>2259325 > notion.so
Только я как раз ради оффлайна использую logseq. Я за пяток лет уже несколько софтин сменил для заметок, и лучше бы чтобы все они были в виде обычного текста.
Алсо, я бы тебе посоветовал привести свои дела в порядок уже сейчас, т.к. то, чем ты занимаешься можно назвать прокрастинацией, типа "вот щас напишу свою тулзу и вот тогда заживу по-настоящему-то!
Вот видите, анонасы, >>2259359>>2259360, я вам расписал требования, а ваши "тонны готовых решений" - это жертвование тем или иным требованием из списка. А мне на деле нравится пилить мою хуету, ещё и лиспом учусь обращатся.
И notion пробовал (интерфейс переусложнён кстати) и прочее. Когда на моём старом компе с 2 ГИГАБАЙТАМИ СУКА оперативки отказались одновременно работать лиса и какое-то приложение на электроне, повиснув через час, я просто нахуй выпал.
Вы держите в фокусе немного, что мне нужно идеально подходящее под меня приложение. Я много чё не умею. Заставлять на деревьях деньги расти, например, не умею. Но я умею программировать. Использовать какую-то подзалупную хуету, на электроне ли, SaaSную ли для меня - это будто сапожнику быть без сапог.
>>2259359 >Консоль это не только неудобно, но еще и уёбищно выглядит, и порог входа высокий, и дохуя телодвижений чтобы что-то сделать. Кстати, с порогом входа согласен, а вот с уёбищностью и "дохуя телодвижений" - нет. В консоли ты меньше телодвижений делаешь, чем если бы в гуи хуетой занимался.
Аргумент: ffmpeg-гуи, которое обеспечивает ту же гибкость где?
>>2259372 > это жертвование тем или иным требованием из списка Надо быть и оставаться гибким, чел. И не высекать свои требования в камне, а думать как еще можно решить свои проблемы и каким инструментом. В принципе, что ты пилишь свою какую-то хуету это неплохо. Тоже способ решениия. Вот только если тебя вдруг заебет её пилить, то твои проблемы, которые ждали этой софтины, останутся нерешенными.
>>2259391 Только чтобы что-то быстро в консоли научиться делать нужно приложить много усилий. А в гуе часто бывает интуитивно накликать мышкой.
Недавно думал об этом, например, пока осваиваешь какой-нибудь абстрактный vim или emacs, чтобы он приносил тебе в будущем от этого профит (принесет ли), за это время можно освоить кучу других инструментов и приобрести кучу других навыков. Think about it.
>>2259396 >профит (принесет ли) Vim принёс. Я одновременно с ним слепой метод ввода учил. Охуенно получилось. До сих пор юзаю его + сборку из bash/cmake + gdb при отладке. Иногда в valgrind приходится залезть. Но ещё ни разу не пожалел, что не пишу в VS. Тормозящее говно. Конечно, когда на работе требуют её, я буду писать там. И сразу спрошу про железо, которое хорошо бы им предоставить.
>Только чтобы что-то быстро в консоли научиться делать нужно приложить много усилий. Но заметь, я и не представляю свой инструмент, как крутое, хайповое приложение. Если я буду писать мануал, то в первой же строке напишу, что это программируемое приложение для заметок (на деле вообще две либы лисповых вышли, но это детали) и попрошу непрограммистов съебаться по-хорошему.
А вообще я делаю для себя и могу делать сколь угодно усложнённым для взгляда со стороны. Главное: чтобы это было эргономичным для меня и экономило моё время.
>>2259396 >Надо быть и оставаться гибким, чел. И не высекать свои требования в камне Ой, блядь, не начинай. Я всю жизнь гибкий. Всем нужно от тебя, чтобы ты был "гибким", потому что у них своих запросов дохуя. Написал же, что программирование - единственное, что я прямо хорошо умею делать. Везде, в каждой другой области, мне говорят ДАВАЙ КОМПРОМИСС @ ЛУЧШЕЕ ВРАГ ХОРОШЕГО. А здесь? Здесь я могу, единственный раз в своей жизни не принимать компромиссов. Юзеров кроме меня нет. Разработчиков кроме меня нет. Финансирования, кроме моего времени нет.
Ты тут сказал что-то про то, что мои дела все пропадут и "ай-ай-ай, торопись, бери готовенькое, тёпленькое"? Я мог дела делать и до того, как-то прожил же? Не умер вроде. Но с этой штукой я смогу делать больше и проще.
>>2259321 >В этой хуйне весь прикол. Так в роам\логсике же как раз и можно без задней мысли захуячивать свой кложекод в документы, чтобы делать кастомные отображалки. Тебе же это и нужно? А-ля org-babel\jupiter-notebook
>>2259321 >Считай что мне нужен конструктор для сборки crud приложений. Хотя конкретно этим занимается тот чувак из hyperfiddle, емнип роамовцы как раз частично с него слизали эту фичу. Вот у него там чисто конструктор крудов, захерачил датаграф - оно тебе построило приложение. Вроде еще были пару конкурентов кстати
>>2259443 >hyperfiddle Прикольно, и сразу в гуй. Жаль что на кложуре и под клиент-сервис через веб заточено.
>>2259440 >роам\логсике Text-based же. Даже в чистом орге есть только пропертисы. Ближе всего к этому был notion, они реально предлагают свою бд строить. Один из вдохновителей моей говноподелки.
> org-babel\jupiter-notebook Близко, но я хочу абстрактный юзерспейс отделить от кода отображения (конфигспейса). Ноутбуки сам на работе юзал, так как с датасаентистами работаю, но там все кишки наружу торчат. И ещё не видел, как туда можно добавить какие-либо поля для ввода по красивому.
>>2259453 >Жаль что на кложуре А на чем еще? Это едиственный лисп-образный язык, на котором имеет смысл что-то писать.<sratch>
>и под клиент-сервис через веб заточено Ну вот сейчас Никитос запилит нам свою десктопную гуелибу и все эти вебы с электронами уедут на помойку истории!11
>>2259453 >Text-based же. Нет, у роама (или одного из его клонов) есть возможность встраивать произвольные виджеты на кложе, инфа 100%. Я не шароебился особо, но ты полуркай, раз уж интересуешься этой темой.
>Близко, но я хочу абстрактный юзерспейс отделить от кода отображения (конфигспейса). Типа смысл в том, что кабанчики должны скриптовать, а юзеры потом юзать? Я тогда опять запутался, я думал тебе наоборот нужно хуяк-хуяк и добавить новый гуй прямо тут же.
>>2259596 >А на чем еще? Это едиственный лисп-образный язык, на котором имеет смысл что-то писать. Был у меня знакомый эмбеддщик в универе, который за кложуру топил. Джава не нужна, в любом виде. Поэтому КАМОН ШЕПЕЛЯВО и только он.
>Ну вот сейчас Никитос запилит нам свою десктопную гуелибу и все эти вебы с электронами уедут на помойку истории!11 Ниет. Я кекал уже тогда, когда нода стала мейнстримом, а не хтоническим высером, над которым все потешаются. Но это бэкэнд, там можно хоть дрочить вприсядку. Однако, когда такое пихают юзеру, приговаривая: "Вот тебе охуенный гуй, мы быстренька состряпали. Ах да, совсем забыл, минимум 8 гб рам. Ненуачо 2к20+ на дворе, уже пора бы." Это... просто пиздец. Всё ради денюшек, скорости разработки. А юзеры проголосовать ногами не могут, потому что ради толики комфорта всё своё самоуважение в жопу себе засунут. Или вообще неграмотные и не понимают, почему ВОТЬЕТО КРАСИВЕНЬКОЕ СВИСТОПЕРДЕЛИСТОЕ - это пиздец ебаный, хтонический шоггот.
>Нет, у роама Ты не понял. Не на таблицах разномастных данных, а на плейнтексте основано. Мне бы хоть какую-то структурность жи. Может быть это мой заёб, согласен, но это для того, чтобы можно было запросы изъёбистые делать.
>Я тогда опять запутался Кабанчиков и юзеров нет. Юзер и конфиг пишет, и юзает.
Но конфиг/скрипт он пишет один раз, а потом тот ему на глаза не попадается.
Я не хочу видеть кишки. Уже пользовался полусырыми штуками собственного производства. Когда внутренности торчат, лишняя когнитивная нагрузка на мозг падает.
>>2259619 > Ты не понял. Не на таблицах разномастных данных, а на плейнтексте основано. Мне бы хоть какую-то структурность жи. Может быть это мой заёб, согласен, но это для того, чтобы можно было запросы изъёбистые делать. logseq хоть и file-based, но очевидно в нём есть своя БД с поисковыми индексами, чтобы каждый раз файл не приходилось перечитывать, т.к. не эффективно.
И как анон выше говорил, этот как раз в нём можно на кложе виджеты писать.
Но в целом, думаю, тебе уже похуй на существующие инструменты, хочется своё запилить, по фану. Ебош, хули.
>>2259619 >Джава не нужна, в любом виде. Нужна. Только джава, только стабильность! Стабильность хардкор интерпрайс!
К тому же кложуру можно употреблять и без джавы же.
>Это... просто пиздец. Всё ради денюшек, скорости разработки. На самом деле дело даже не в этом, а просто в том, что тут так принятотак модно. На зарплату одного жс-хипстера можно было бы нанять трех крестовых мужиков, которые бы состряпали гуй на кутях. Да, дольше, да, с сегфолтами, но все же. Но раз модно, значит так и надо же.
>Не на таблицах разномастных данных, а на плейнтексте основано. Ну по таблицам не скажу, но вообще-то у них там граф-дб, а не просто блобы текста. Но видимо немного не то, что тебе хочется.
>Но конфиг/скрипт он пишет один раз, а потом тот ему на глаза не попадается. Хм, ну хуй знает. Так тогда бери да пиши. Я-то думал фишка именно в том, что как ты выше описал, вот пришла в голову мысль калории там посчитать или что - ты парой строчек не выходя из приложения запилил новую формочку. А если конфиг отдельно, приложуха отдельно, ну тогда просто берешь да пишешь обычный код, вот и все.
Ну в любом случае ебош, присоединюсь к анону выше.
>>2259596 > Ну вот сейчас Никитос запилит нам свою десктопную гуелибу Я так и не понял, на чём он её пилить собрался, на голой жабке чтоле? Алсо фон у него в блоге пиздец конечно, каждый раз кровавыми глазами плачу.
>>2259743 Ну сама гугловая либа на крестах, жмвовский враппер на джаве, менеджер окон тоже на джаве, нужен теперь реакт\редукс рефрейм\рерюм на кложе. Ну может какие-то базовые компоненты будут на джаве, я вообще без понятия как и что он там задумывал.
Мне всегда казалось, что это такой троллинг, типа ЯДИЗАЙНЕРЯТАКВИЖУ. Переключалка в темный режим как бы намекает.
Вот я бы конечно хотел писать гуи на шепелявых. Но вот пользоваться ими?.. Ну, типа, ладно там иде. Но вот какие-то повседневные мелкие приложухи? Это бы сработало, если бы у нас был единый десктоп+рантайм а-ля имакс, под который мы бы писали свои приложухи в виде функций. Но камон, одному человеку это сделать нереально, хоть какая там у тебя алиен технолоджи. А запускать под каждую отдельную свистоперделку свой процесс?..
Типа, голый репл на жвм - это сразу сотка мегабайт памяти. У камонлишпа то же самое. Можно взять какую-нибудь ту-зе-метал схемку, ну или тот же гуайл ибо он СТАНДАРТЕН!, но смысл? Можно конечно, но сперва придется туда датаскрип\кложестдлиб портануть. Ок, можно скомпилить в жс - но блядь, это та же самая сотка памяти на процесс. Ну можно взять кастомный жс-рантайм, как у гномосеков, допустим. Но он-то хочет на ские и жавских биндингах делать! Ну ок, остается только грааль.
Но блядь, грааль решает проблему с быстрым запуском, это да. Но он все еще тащит с каждым экзешником пол-жвм (ну, в смятку, но жвм же). На диске он занимает под сотку. В памяти - полсотки (на бабашку смотрю). Это же все равно дохуя.
Я хз, как решить эту проблему. Кроме как использовать гошные\луашные диалекты кложи, но это же хуйня и не то. Либо ждать, что грааль наколдуют так, что он станет тощее на порядок. Ну типа, это конечно все еще лучше электрона, и в принципе неплохой такой миддл граунд между пользователем и разработчиком... Но хуй знает.
>>2261076 Я имел в виду анстейбл sbcl, а не анстейбл профиль целиком. Смотри, как можно было: $ /etc/portage/package.accept_keywords/sbcl dev-lisp/sbcl
>>2261078 В том-то и дело, что я анлочил анстейбл по мере надобности и мне это выебало все зависимости нахуй. Я тогда обновится нормально не смог, но со сменой профиля появлялся PIE, поэтому всё равно была фулл рекомпиляция и достаточно было снести анстейбл-онли пакеты. Анстейбл либо полный на систему, либо никакого. И живёшь почти без забот.
В любом случае, кто в 2022 станет считать эти 40-100мб, когда один лишь хелловорлд на гтк3 сжирает чуть больше 50мб? И это ещё считается легковесным решением, про дрискорды и прочее говно на электроне я вообще молчу.
>>2261250 >Репл gjs - 17мб Ты про размер бинарника или что? 30мб оперативы он жрёт. Всего на 10 меньше, чем у жирнющего sbcl. >Хелловорлд - 20мб Тот же вопрос. gtk3-demo-application, который на сишке, отжирает 50
>>2261353 Я через 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; }
>>2261362 Чому ему кстати все сбцл предпочитают? Между гуайлом и общелиспом я бы выбрал первое, тем более что он еще и тоньше (и СТАНДАРТНЕЕ), но между гуайлом и условным питухоном я бы выбрал последнее.
>>2261477 Я начал с clisp. Посидел на нём, не понравился. Гугл -> Чё там самое популярное, надёжное, быстрое как понос? -> sbcl
SBCL понравился. Конец истории.
Можно было бы расписать про его JIT компиляцию, когда он по умолчанию компилирует даже в REPL, пока ты его отдельно не попросишь именно компилировать. Про то, что он живой и умирать не собирается: вон помню писал для 1.3.11 в универе (на убунте причём!), сейчас у меня 1.4.9 - и это ещё древняя версия. Но это всё все и так знают.
>>2261263 Цепочка постов началась с меряния колонкой RES топа. Я привёл скрин с Maximum resident set size в 1 мег с копейками. Объясни мне, каличному, что я делаю не так?
>>2261910 Дак ты не лупай по redefining-macros, а эксплицитно этот супер-макрос вызывай. Вообще, я так долго могу советы в никуда давать, какая задача перед тобой стоит, что ты её пытаешься решить таким кодом? Желательно поподробнее.
>>2262045 >а эксплицитно этот супер-макрос вызывай А, не я так не хотел.
>какая задача перед тобой стоит, что ты её пытаешься решить таким кодом? Просто попытался связать sxql и cl-sqlite быстренько клеем. Сейчас вижу, что настолько просто уже не получится, нужно для запросов стейтменты (объекты) юзать, а не execute-to-list.
Фишка конкретно здесь состоит в том, чтобы импортнув мой пакет, юзер получал красивенький интерфейс к sqlite на s-выражениях.
А можно мне мой велосипед назад? В нём меньше движущихся частей...
>Как-то так подобные макросы пишутся. Хм. Никогда так и не освоился с проектированием на макросах. Полагаю нужно больше опыта. Алсо не знал, что macrolet работает последовательно.
Так и не понял, что ты точно сделал. Вроде бы 1) Выделил все зафиксированные части в функцию, 2) Добавил ещё один макрос (для списка), чтобы можно было применить их явно "по-месту", без eval.
То есть нужно сопротивляться eval со всех сил, и если видишь циклическую кодогенерацию, что заюзать вот такую конструкцию? Также, если есть сурс, где такому учат (типа Гофовских "Паттернов проектирования"), то прошу поделится.
>>2262192 Выглядит datafly хорошо, особенно для моих размеров БД. Хотя мне стало интересно, при каких размерах, просто загрузить всё в лист - уже не такая хорошая идея. Я тупо использовал максимально низкоуровневые инструменты, что мог. Первое что нашёл, загуглив лисповый адаптер для sqlite. Первое, что нашёл на sql с s-выражениями. Если бы было ещё что-то проще чем sxql, то это бы взял видимо. Как-то на лиспе больше хочется костыли городить.
>>2262227 >Алсо не знал, что macrolet работает последовательно. Не, он параллельный, как let ( https://ideone.com/SRpE15 ) В том коде раскрытие макросов происходит в несколько проходов. Сначала генерируется (progn (define-yoba-wrapper ..) (define-yoba-wrapper ..) ...), а следующим проходом раскрываются (define-yoba-wrapper ..) > чтобы можно было применить их явно "по-месту", без eval. Нет, не для этого. Просто, чтобы не превращать код в нечитаемую лапшу. Можно было и одним макросом всё написать. >То есть нужно сопротивляться eval со всех сил Если у тебя в коде появился eval, то, скорее всего, ты что-то делаешь не так. >Также, если есть сурс, где такому учат (типа Гофовских "Паттернов проектирования"), то прошу поделится. OnLisp
Отпишу пожалуй ещё, раз мне уже с sql помогли велосипед выкинуть.
Я написал костыль, который имитирует REPL лиспа (то есть вычитывает, выполняет, и выводит), но сделал я это через cl-readline.
Это важный момент, потому что я делаю на SBCL и там почти всё в репле кастомизируется. По идее можно было не вылезать из него и всё. Но я так и не понял, как заставить sbcl юзать readline. Разве что rlwrap sbcl, но мне это не совсем подходит.
Конечно, я осознаю что с твоей точки зрения ем суп ложкой. Но всё же не спроста выбрал учить лисп без каких либо IDE, тем более знаменитой LispOS. Это сделано с целью почувствовать насколько лисп поддерживает мой любимый антисвистоперделистый стиль работы. И вроде как поддерживает неплохо, только иногда тянется много зависимостей. Каждый раз когда вижу александрию, вздрагиваю.
>>2262926 cl-repl https://github.com/koji-kojiro/cl-repl >>2262955 Это то же самое, что купить автомобиль и запрячь в него коней, потому что придерживаешься антибензинового метода перемещения. Общелисп спроектирован как язык интерактивного программирования: позволяет переопределять в рантайме функции, макросы, классы, структуры, пакеты, выполнять произвольные участки кода в любой момент времени, имеет средства интроспекции, протокол восстановления от ошибок (сигнальный протокол с перезапусками). А ты намеренно обходишь основную его фишку.
>>2263082 Не юзать IDE =\= не юзать возможности интерактивного программирования.
Скорее подойдёт аналогия с тем, что тебе разрекламировали мощный крутой автомобиль, когда ты катался на лошади, но вместо бензинового монстра ты покупаешь маломощный электромобиль. Потому что придерживаешься антибензинового метода перемещения, да.
>>2263168 >Не юзать IDE =\= не юзать возможности интерактивного программирования. Ну да, тянуть машину лошадью тоже =/= не ехать. Кстати, не думаю, что явисты с тобой согласятся, что <любимый программируемый редактор> + slime = IDE И как ты их используешь без слайма? Расскажи. Копируешь код по одной функции из редактора в репл или сначала пишешь в репле, а потом копируешь в редактор? А макросы как раскрываешь? Тоже копировать-вставить-копировать-вставить? А с отладкой что? Как инспектируешь кадры стека вызовов при ошибке?
>>2263507 Ну вот, начинается. Проматывай сразу в конец для ответов на вопросы, а я пока распишу отвлечённую хрень.
Начал я с VB6. Такая ебола, которая позволяет очень быстро клепать GUI приложения, но при этом настаивает на очень хреновом стиле программирования. Там редактор автоматически предлагает весь код в формах писать, и сейчас я уже понимаю, что это мерзость. Но не тогда, тогда это была игрушка для школьника. Однако сделать что-то серьёзное уже не мог - сложна. Отладка идёт медленно, но на деле - быстро. Медлительность из-за мозга школьника, а не инструмента.
Потом кресты. С++ начал учить в конце школы, на Dev-C++ с MinGW. Было сложновато, но зато это был первый вкат в комплюктер сайанс. GUI тогда стало недостижимо, потому что у меня был выбор из wxWidgets и Qt и оба были такой сложной хуйнёй, что я ебал. В Qt даже сейчас порою путаюсь. Стал мочь больше, но стало меньше "игрушечности", "веселья". Отлаживался уже с трудом, ошибки шаблонов заставляли волосы на голове шевелится. Но это была всё же IDE.
Потом универ. Саблайм, а потом и вим. Совсем голые мэйкфайлы, исходники с кодом и всё. Однако стал мочь сделать намного больше, в это время выучил очень много всякого технологичного скама. Отлаживался уже "внимательным взглядом", потом меня наускали на gdb и стало совсем хорошо.
Сейчас на работе я не могу понять как люди долго работают с кодом, не сделав ни одной компиляции. Ошибки компилятора - главный детектор ошибок синтаксиса, не линтер. Чем дальше углублялся, тем примитивнее становились инструменты и тем больше и проще можно было их кастомизировать чисто под себя. И чем дальше, тем меньше мне хотелось "загрязнённой среды". А теперь, с вот этим контекстом, поехали.
>И как ты их используешь без слайма? Делаю систему, делаю load.lisp, который добавляет папку к каталог asdf и загружает систему, потом загружаю этот файл через --load при запуске sbcl (через makefile). Позволяет потестить сразу же ручками, что написал.
> Копируешь код по одной функции из редактора в репл или сначала пишешь в репле, а потом копируешь в редактор? Если есть какая-то сложная концепция, то делаю как с крестами: пишу сразу в репле маленькую тестовую функцию/макрос, которая реализует функционал и смотрю, как это работает. Хорошо ограничивает сложность, потому что когда видишь конструкцию вида ,',something в коде, то сразу задумываешься, а хороший ли код ты написал.
> А макросы как раскрываешь? Точно так же, загрузив систему или через маленький тестовый макрос + macroexpand-1.
> А с отладкой что? Как инспектируешь кадры стека вызовов при ошибке? Пока мне хватало встроенного в репл инструмента. Очень крутой. Стека вызовов как такового нет, потому что все мои "проекты" <1к строк. Достаточно посмотреть, в какой функции ошибка.
Вот и всё. Проще - лучше. Лисп понравился не потому что кто-то показал охуенное демо, где он в SLIME выращивает какую-то прогу органически, почти без усилий, а потому что это самый выразительный/мощный язык из мне известных.
>>2264068 Бля, а ведь я тоже начинал настоящее программирование с визуальной какой-то хуйни. Тоже вот эти обязательные формы. Меня наверное спасло то что потом у меня был школьный паскаль. Ну а потом, да, ебучие кресты, в рот я их ебал, был бы хоть кто-то кто бы сказал какой я хуйней страдаю когда читаю книгу в которой какой-то хуй описывает как вычислять факториал на темплетах через енум-хак. Ну и хуета, блять.
Братан, если ты используешь вим, не поленись, потыкай плагины на него для лиспа. Просто вот ты тоже щас хуйней занимаешься, понимаешь, да?
>>2264087 >Просто вот ты тоже щас хуйней занимаешься, понимаешь, да? Опять же, нет, не понимаю. Хотя, расписав вот ту херню сверху я не поленился погуглить и побольше узнать про слайм(-в).
Каково же было моё удивление, когда первое же, что мне было сказано: "Тебе надо SWANK". На закономерное "это чё?" оказалось что "Это TCP сервер". Тут-то пришло время мне впадать в ахуй.
Распиши лучше, почему такой эрзац-юниксвей, который я в силу своего скудного опыта смог сотряпать - это хуйня. Потому что не понимаю, хоть ты тресни, чем таким лучше сидеть с такой еболой. Может быть если большие проекты разве что.
>>2264096 Ну крч смотри, в коммон лиспе принято работать в картине (имедж) - например работающий сбцл. Сванк это тупо код который сбцл подгружает, что бы слайм мог с ним базарить.
Тут можно вопрос поставить по другому: а зачем перезапускаться? Если ты перезапускаешься на каждый чих, то ты не так уж и далеко ушел от плюсов. Обычно под РЕПЛом подразумевается вот что: в своем файле ты пишешь код, и что бы его подгрузить, делаешь сочетание клавиши, которое отправляет его в картину. Если ты копируешь его вместо того что бы нажать сочетание, ты делаешь лишние телодвижения. Хочешь макроикспэнд? Нажми сочетание, будь человеком. Я уж не говорю о том какой убогий консольный ЮИ когда тебе выбрасывает ошибку или кондишн. И использую асдф, не делай лоад. Лоад это прошлый век. Я уж не говорю про фичи вроде человеческого дескрайба в отдельном окне или прогулки по дереву значений (вот есть у тебя структура, ты на нее в репле нажал, смотришь все слоты, а потом что в отдельном слоте, или смотришь какие методы определены у класса, и.т.д)
Да и вообще, просто попробуй, не спрашивай зачем, вот если не понравится, тогда напишешь тут почему.
>>2264138 >Если ты перезапускаешься на каждый чих, то ты не так уж и далеко ушел от плюсов. Это всегда был скорее плюс, потому что избавляюсь от всего. Одна из самых идиотских ошибок - это когда ты думаешь что этого кода не было/был, а на деле он есть/его нет. С питона знаю. Самый маразматический случай был, когда учился работать с БД (в частности сетапить PKI и авторизацию): были скрипты для создания бд, её заполнения, и удаления. Чтобы можно было раз за разом воспроизводить одинаковую среду. ИЧСХ, я закончил и сдал побыстрее других однокурсников.
> И использую асдф, не делай лоад. Но ведь я делаю ql:quickload, а лоадом лишь загружаю файл, который говорит asdf'у где смотреть мою систему...
>>2264151 Почему использование лиспа как языка без вот этих вот красивостей - это резко подставка для книг, понять точно не смогу. У лиспа есть много всего хорошего и без утончённых танцев над имаджем. Я вот щас за игровым компом сижу (топ года эдак для 2018), на линуксе. Считается как подставка для книг?
>>2264151 >>2264138 Окей, попробовать всегда можно. Но, если в этом треде/где-то ещё объявится маразматик, который будет упорно делать загружаться на голом sbcl, то... ну вы понели.
Не полностью понимаю о чем вы пишите, но читать интересно. Завтра у меня по плану вкат в СИКП и схему, после хочу common lisp попердолить. Какие наставления можете дать? мимоБайтоеб
>>2264138 >Лоад это прошлый век Даже в прошлом веке такой хуйнёй не занимались. По крайней мере на лисп-машинах >>2264096 >Распиши лучше, почему такой эрзац-юниксвей, который я в силу своего скудного опыта смог сотряпать - это хуйня. Смотри. Цикл разработки на си (и многих других языках) чётко делится на стадии: пишешь код, потом компилируешь, потом отлаживаешь и снова возвращаешься к первому пункту. И так не потому, что удобнее иначе бы среды разработки не пытались размыть между ними границы, эти стадии продиктованы инструментарием. В общелиспе же это разграничение отсутствует совсем. даже нет стадии компиляции, потому как она ничем не отличается от ординарного выполнения кода. в схеме, кстати, не так, он изначально спроектирован как динамическая, программируемая система. Так что, притягивая за уши сишный цикл разработки ты только создаешь себе проблемы на пустом месте. Твой "эрзац-юниксвей" сравним с попыткой добыть огонь методом трения спички о зажигалку. >>2264138 >в коммон лиспе принято работать в картине (имедж) Проиграл. Мне кажется, правильнее говорить "работать на холсте", а не "в картине"
>>2264429 То есть суть в том, чтобы относится к нему не как к программе, а как к некоторому алгоритмическому блобу? Который ты лепишь, как из глины, пока не станет "относительно заебись"?
Хорошо, тогда у меня вопрос: а как это распространяется? Или деплоится. Не важно.
На сишке/крестах - понятно. На скриптовых всяких языках тоже вроде понятно, считай то же самое. Но что здесь? Сохранить имадж, а потом поднимать его и запускать с определённой точки входа?
>>2264474 >или прямого дёрганья за save-lisp-and-die, но сейчас они устарели Я так экзешник делал(( Ещё выставлял сжатие в девятку и хотел declaim optimize 3 везде сделать.
>>2264504 И потом резетить в debug и safety, если захочется? Не подумал об этом. На самом деле, я об .sbclrc вообще мало думал. Как-то в парадигму в голове не вписывается.
>>2264507 Я просто подумал что ты прямо в файлах это собирался делать. Достаточно только в репле перед quickload, наверное. А там же еще библиотеки сторонние есть.
Я, есличо, не деплоел ничего никогда, поэтому не знаю тонкостей.
>>2264565 Да в общем-то тем же, чем и любой наивный велосипед хуже отлаженного инструмента. >Может я детали какой-то не вижу? Посмотри, как stumpwm опакечивается. При всей простоте сборки ни один из дистрибутивов не поставляет его в собранном виде, а только в виде дерева исходников. Знаешь почему? Потому что меинтейнеры ебали костылить их велосипед. Кстати, фиксится всего парой строчек, но чтобы найти решение, пришлось перековырять исходники cl-launch, buildapp, deploy и документацию asdf.
>>2264589 >Посмотри, как 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".
>>2264945 а жаль, ведь из лиспов больше нихуя и нет на рынке. а программировать за деньги на мейнстриме зашквар. да та же кложа в одних вэб проектах. так, че там дальше по списку неуебищности, но за что еще готовы платить? а то а заебался самые натуральные борщи хлебать.
>>2264998 > питон, го ну я же говорю, "неуебищности", а не "уебищности". то что каждый даун может писать, это минус, а не плюс. зачем соревноваться с даунами за их места? уж лучше язык с кучей легаси. но только не кресты, плес.
>>2265000 вообще-то не до пизды, поэтому и вопрошаю. и, да, нахуй вэб дэв, это тоже зашквар.
>>2265008 Чел, на этом goвне уже успели нарисовал кучу легаси. Хз зачем тебе "сложный" язык. Ты кодить хочешь или бойлерплейт парашу рисовать/некрокод поддерживать?
>>2265022 >>2265026 > сложный Конечно, казалось бы, какая разница на чем писать, выбирай лучше интересый проект, и да, все так, но просто лисп оказался зоной комфорта, и покидать ее не охота.
Да в принципе, ладно, пацаны. Тут и так ясно, берешь языки которые хоть чем то нравятся, и идешь шерудить сайты с вакансиями. Я вас так, подбадриваю тут, что бы не скучали.
>>2265008 Написал бы чего прорывного на лишпе тогда. Где орды лиспокакеров, копротивляющиеся монополиям копрораций? В елиспе очередной IRC клиент пилят за мамкинми борщами
Коммент на stacoverflow: - Почему вы убрали slojure из годового отчета, популярность языка же выросла!
Рандомные утверждения из комментов, интервью: - то, что либы не обновляются по несколько лет, это нормально! Один раз написал, они работают, что ещё надо? - что значит мало задают вопросов по языку на stackoerflow? Это не значит, что язык мертв! Это значит, что по нему не нужно задавать вопросы! Я вот в последний раз туда заходил только чтобы посмотреть как апихи на джаве писать!
>>2265319 А чё проигрываешь-то? Второй аргумент, конечно, сомнительный stackoverflow не нужен, да, а первый вполне валидный - я вон на CL некоторыми библиотеками пользуюсь, которые обновлялись в последний раз в 2017. Как там, бог создал труд и обезьяну чтоб получился человек а вот пингвина он не трогал тот сразу вышел хорошо
>>2266618 Я дебил, не стоит на это отвечать. Но да, иногда справка в лиспе может быть немного... запутанной. В питухоне подобное сразу из коробки, чтобы дебилы постами в питонотреде не срали.
Кто-нибудь ИТТ вообще работает на лиспе? У меня идея фикс закралась в голову, сменить работу питониста на кложуриста. Вакансий в РФ нихуя нет. Опыт кложи принесет пользу для резюме только косвенную. Если вдруг повезет найти контору в РФ то съёбывать на лиспы будет уже некуда.
Короче, заебала меня эта идея фикс, вот думаю, надо ли в себе её подавлять, и не делать необдуманных импульсивных поступков.
Это еще при том, что я практически нихуя не написал на кложе. Надо наверное таки пережить месяцов-другой с этой мыслью, покодить на кложе, и понять, точно ли я хочу смывать свою программерскую карьеру в унитаз, и, что важнее, ради чего вообще.
>>2265363 > я вон на CL некоторыми библиотеками пользуюсь, которые обновлялись в последний раз в 2017 Ну если ты пишешь на ClojureScript, которая зависит от либ ЖС, то о свежести пакета хош не хош придётся задуматься.
>>2267935 >У меня идея фикс закралась в голову, сменить работу питониста на кложуриста. Почему, чем ты руководствуешься? Если бы я искал себе работу на окололиспе, то только если бы я писал на нём уже много лет и хорошо писал. А то вон, пишу уже года три время от времени, и оказалось, что даже SLIME не юзал.
>>2267935 > У меня идея фикс закралась в голову, сменить работу питониста на кложуриста. Охуенная идея же. У меня как запасы после последней галеры подойдут к концу, тоже в кложу вкатываться буду (сейчас неспешно изучаю, уже Clojure for brave and true осилил).
>>2267937 Да в том-то и дело, что к мотивации вопросы. Из рациональных причин, которые я могу придумать, такие: - сказки про быструю разработку меня подкупили. Хочу узнать почему так и научиться также - узнавать новое - заебись. На новых языках писать - заебись. Новые концепции - заебись. Быстрее всего опыт приходит нанепосредственной работе. Пет проекты приносят преимущественно только поверхностные знания - дохуя слышал что фп и лисп сделают из меня лучшего программиста - хочу от работы получать удовольствие. Деньги важны, но спокойствие, кайф от работы и счастье еще важнее. Готов проебать в ЗП, но кайфовать от работы. Но хз как этому именно кложа будет способствовать, а не решаемые на ней задачи
Ну и эти пункты скорее всего тупо рационализация идеи фикс, и я скорее всего просто ищу причину съебать с моего текущего места работы. >>2267938 Да хуй знает. Вот прямо сейчас, в данный момент, вакансий на кложу - ровно одна штука, нахуй. В health samurai. Но чет про саму контору и отзывы о ней я не много нашел, хотя в круге кложуристов она известна. Т.е. работы как таковой нихуя нет. А как я уже выше писал, гуглтренды показыавют спад интереса к языку, которого и так нихуя не было. Короче это по всем критериям хуёвая идея, но не смотря на все доводы, мозг хочет блядь пойти работать в лисперы.
>>2267951 >Пет проекты приносят преимущественно только поверхностные знания Лал. Больше всего знаний про дизайн приложений я узнал в универе, от умных людей, и закрепил чтением википедии и в петпроджектах. Все свои знания про плюсы я получил сам. Максимум на чёртовом хабре мог узнать что "О, ёпт, std::variant теперь часть стандарта. Охуеть, как люди заживём!". (Ещё можно одну конторку игроделов упомянуть, но там чуть-чуть только поднабрался. В основном сам.)
>- дохуя слышал что фп и лисп сделают из меня лучшего программиста С фп - сказки. Можно и на фп говнокодить. Иногда чистая функциональщина на этих ваших компуктерах тормозит немного без мутабельности.
А вот с лиспом была где-то такая цитата, что программист типо мыслит самыми выразительными конструкциями, что только может. Если ты знаешь только кресты, то ты всегда будешь мыслить только ими. А вот если ты знаешь лисп, то даже используя плюсы (или ассемблер), будешь стремится к лучшему. Я именно поэтому выучил лисп. Ещё бы в Forth покопаться бы...
> хочу от работы получать удовольствие > Но хз как этому именно кложа будет способствовать Вооот! Именно это я и спрашивал. Как ты думаешь ты будешь получать удовольствие, если ты ещё даже для себя на кложуре не пробовал писать?
>>2267973 > Лал. Больше всего знаний про дизайн приложений я узнал в универе, от умных людей, и закрепил чтением википедии и в петпроджектах. Все свои знания про плюсы я получил сам. Максимум на чёртовом хабре мог узнать что "О, ёпт, std::variant теперь часть стандарта. Охуеть, как люди заживём!". (Ещё можно одну конторку игроделов упомянуть, но там чуть-чуть только поднабрался. В основном сам.) На работе от умных дядек/коллег быстрее. На примерах быстрее учишься. Но в конторах, конечно же, просто доходишь до какого-то определенного минимума развития, чтобы работу работать, и останалвиваешься. Но первый буст очень хороший. Ну, не буду экстраполировать на всех, у меня на реальных задачах быстрее получается.
> С фп - сказки. Можно и на фп говнокодить Ну тут больше про расширение кругозора. Одно дело, когда питон/го/жс позволяет писать как на фп, другое дело когда язык тебя принуждает, и ебись как хочешь. Сразу мозги работать по-другому начинают. Мозг - ленивая хуйня. Без принуждения будет по старым тропам ходить, даже если вокруг еще сотни.
> Вооот! Именно это я и спрашивал. Как ты думаешь ты будешь получать удовольствие, если ты ещё даже для себя на кложуре не пробовал писать? Ну пишу, пишу. Пока весело. Но что-то мне подсказывает, что на любом языке писать весело, главное чтобы задачи нравились. А не ёбаная поддержка/легаси.
Короче, ясен хуй, сильных причин за переход в кложу нет. Видимо нужно перетерпеть. Или хорошенько все обдумать еще раз, и поизучать перспективы.
Алсо, еще один поинт для меня, что в маленьких сообществах можно легче стать узнаваемым, т.к. конкуренции очень мало. Мало контента, мало статей, мало ютаб роликов. Поэтому даже говноконтент будут хавать за обе щеки. Другое дело, будет ли народ, чтобы хавать этот контент, или язык потихоньку умрёт, так и не родившись.
>>2267951 > Вакансий в РФ Обесни, почему такая фиксация на пидорахию? Сейчас глобальная пандемия бушует, зарубежные конторы с удовольствием берут людей на удалён очку.
Это правда, что LISP это язык для обучения принципам программирования? Решил вкатиться в пр. с нуля и подумал, а не стоит ли начать отсюда? Офк, у меня есть на примете пару проектов, которые я бы хотел реализовать и можно было бы сразу начать с более подходящего ЯП, но а вдруг
>>2268345 >Это правда, что LISP это язык для обучения принципам программирования? Испорченный телефон в действии. Есть курс лекций для обучения принципам программирования, называется SICP. В нем предлагается язык Scheme для решения заданий.
>>2267998 >Одно дело, когда питон/го/жс позволяет писать как на фп, другое дело когда язык тебя принуждает, и ебись как хочешь. Сразу мозги работать по-другому начинают. Тогда ты выбрал не тот язык. Кложа не годится для расширения сознания, это такой же язык-компромисс, как и перечисленные тобою питухоны-жээсы. Хочешь погружения в ФП — бери хаскель.
>>2268407 Так помимо того что кложа фп это ещё и лисп с макросами и прочей ебалой типа гомоиеонности. Алсо фронт на кложе довольно прикольно писать. Кажется интуитивно понятнее ебалы на жс.
>>2268450 Там от функциональщины только ФВП и иммутабельные СД. Без АТД, каррирования, лени, нормальной системы типов, контроля побочных эффектов и хвостовой рекурсии без костылей это не более, чем суррогат ФП. Я не говорю, что это плохо. Такой компромисс, возможно, для кого-то и имеет смысл. Но для погружения в ФП он не годится.
>>2268563 Я понимаю, что веб-макакам сложно ориентироваться в информации, отличающейся по формату от стэковервлоу, но неужели ты не мог хотя бы по первому абзацу в википедии прочитать?
>Здравствуй-приехали, а deftype, defrecord и reify там для красоты? АТД = алгебраические типы данных. В кложуре их нет. >Здравствуй-приехали, а partial там для красоты? частичное применение ≠ каррирование, учи матчасть >Здравствуй-приехали, а lazy-seq там для красоты? ленивые списки — лишь один из частных случаев применения лени. Но отчасти я согласен, LazySeq там действительно не для красоты, лол. В кложуре вообще-то есть хрестоматийные макросы delay/force, обеспечивающие возможность отложить вычисления до востребования, что является своего рода реализацией ленивых вычислений с "ручным закатом солнца". Но даже нет смысла говорить, насколько они бестолковы в языке с энергичными вычислениями, факт существования такого костыля как LazySeq говорит сам за себя.
>>2270911 >Или встроенная в язык фича это принципиально? Ну а ты сам как думаешь? >Интересно, это макросами можно сделать... Прикрутить сбоку изолентой — легко, минутное дело. Но чтобы внедрить полноценно, нужно перекроить весь язык.
>>2271775 > Прикрутить сбоку изолентой > макросы Ты хорошо понимаешь как макросы работают? Если макросы - это "прикрутить сбоку изолентой", то там весь, блядь, язык так построен. И мало того, такой красивой, прочной и стандартизованной изоленты ты не найдёшь нигде ещё. Тогда некоторые "полноценные внедрения в язык" и рядом с этой изолентой не стояли.
Олсо, объясни тогда уж дебилам в треде, чем так сильно частичное применение от каррирования отличается? Не определением, там-то понятно, а именно смыслом, возможностями? Или даже, чем чёрт не шутит, контекстом применения?
Мне каррирование по-настоещему было нужно только когда я имплементил SKI комбинаторы ради забавы. Усё.
>>2271775 Вот как-то так, например: https://ideone.com/sDozCL >>2271782 >Если макросы - это "прикрутить сбоку изолентой" Речь не про макросы как таковые, а про чужеродность концепции. Если язык и стандартная библиотека не скроены под неё, то она так и будет болтаться сбоку. >чем так сильно частичное применение от каррирования отличается? Тем же, чем и полноценная лень отличается от delay/force.
>>2271791 >Тем же, чем и полноценная лень отличается от delay/force. Типа кишки торчат? Стройности нет? Можно чуть более развёрнуто? Дебилу всё-таки поясняешь.
>>2271775 >>2271791 И ещё макросом чтения подкостылить можно, чтобы не так всрато выглядело https://ideone.com/u18Lvb >>2271794 Бля, во ты зануда. Монады в js или крестах видел? Чем они отличаются от монад в хаскеле? Вот тут то же самое.
>>2271822 >Монады Когда в унике объясняли монады я пару проебал. Потом мне одногруппники какую-то херь про эндофункторы затирали, но я так никогда теоркат и не выучил, чтобы определение понять.
Сказано же было, блядь, что ты дебилу объясняешь? Неужели так сложно понять? Думаешь это самоирония такая?
>>2271782 >чем так сильно частичное применение от каррирования отличается? Стоп. Ты что именно спрашиваешь? Чем кложура с partial отличается от хаскеля с каррированными функциями или тебе не понятны сами термины?
>>2271855 > Не определением, там-то понятно, а именно смыслом, возможностями? Что такое делается каррированием, чего нельзя частичным применением сделать? Один пример. И я отъебусь.
>>2272052 Алло, блядь. Применение каррировнной функции и есть последовательность частичных применений. Вопрос не в "нельзя"/"можно", а целесообразности. В хаскеле частичное применение используется повсеместно, потому что не требует лишних телодвижений и хорошо сочетается в остальными концепциями. Так например, каррирование вкупе с комбинаторами, подходящей системой типов и синтаксисом делает удобным программирование в бесточечном стиле. Возможно ли писать в бесточечном стиле в кложуре/жс/жабе/крестах/го/etc? Технически - да, практически - нет, за исключением случаев, когда поедание кактуса является самоцелью Розумеш? Если нет, то иди на хуй
>>2272052 Да, но о том я и говорил. > Типа кишки торчат? Стройности нет?
То есть это концептуально одно и тоже, применяется в одних и тех же обстоятельствах/контекстах. Но чтобы юзать "каррирование" и "ленивые вычисления" в языках, что под это не были заточены, нужно больше телодвижений делать.
Я крестодевелопер по духу. Знаешь сколько телодвижений нужно мне обычно делать? Это не страшно. Если захочешь, сделаешь в том стиле, что захочешь.
>>2272061 >То есть это концептуально одно и тоже Нет, блядь. Каррирование - колесо, частичное применение - движение. Двигать можно и куб, но колесо катится само.
>>2272093 >но колесо катится само Ну вот видишь, хоть я и дебил, но физику знаю лучше тебя. И колесо и куб не катятся сами. И колесо и куб будут перемещатся/катится/кантоваться в специальных обстоятельствах. Например, на склоне горы.
Разница лишь в том, что колесо кантовать проще. Для этого даже выделили отдельное слово. Катить.
Если это всё, то я добавлю пунктик про каррирование в свою копилку "неловкостей". Как, например, отказ использовать SLIME.
По сути всё то же самое, но изъёбистей. Влияет на тренд, на глобальную привлекательность языка, но если ты сам решил использовать какой-то "неудобный" язык с не подходящей ему парадигмой, то никто тебя не остановит.
>>2272059 Я один хуй не понял. Partial в clojure есть. Каррирование - последовательное применение partial. Но каррирования в clojure нет. > делает удобным программирование в бесточечном стиле. А макросы стрелок в кложе это не программирование в бесточечном стиле, чи шо?
>>2274369 Который по совместительству является справочной документацией и по объему не сильно отличается от документации основных частей Python. Есть в CL архаизмы и эзотерика типа get, но и в Pythonесть свое типа __getattribute__. А Лисповское ООП, кстати, использовать даже проще питоньего. >>2274484 Самые заметные различия между Python и CL – генераторы с одной стороны и CLOS с другой. Можно сколько угодно рассказывать про борщехлёбское метапрограммирование, но по факту большая часть кода на CL является типичной Python-like императивщиной, в которой даже вместо filter-map-reduce часто используют еретичный loop либо православный iter, а самописные макросы обычно применят лишь как синтаксический сахарок. Примеры? Да хоть Hunchentoot.
>>2274907 Да, не обмазывался (но читал о нём), вот только это твое утверждение находится на одном уровне с "Паттерном интерпретатор не обмазывался". Никто не просит обмазываться MOP там, где можно обойтись без него. Иначе выходит типичный борщехлёбский номер: выбирать непривычный инструмент ради того, чтобы героически преодолевать создаваемые им трудности. Это не говоря о том, что MOP не является официальной частью стандарта.
А вообще, то, как ты сейчас увильнул заставляет подозревать в тебе очередного шиза, спорящего ради споров, но пока что отброшу подозрение. К твоему сведению: я не пытаюсь защищать Python. Более того, в выборе между CL и Python я as default предпочту CL, ибо его достоинства перевешивают достоинства Пайтона.
>>2274842 > Самые заметные различия между Python и CL – генераторы с одной стороны и CLOS с другой. Какие нахуй самые заметные различия, дебс? Это не делает их "same shit", которое вообще не понятно что означает, не даже похожими друг на друга. В СЛ ты мешаешь императивщину с функциональщиной как угодно, потому-что это мультипарадигменный язык. То что ты в какой-то там библиотеке увидел говнокод для веба, это не показатель даже среднего по больнице. Да дело даже в этом, в питоне мапредус это ебаная клоунада.
Конечно на СЛ писать проще - потому-что язык лучше. Хуле тут сложного.
>>2274989 > ибо его достоинства перевешивают достоинства Пайтона. Чисто из интереса, какие достоинства у CL? Сам я с питона начинал -- охуенный язык. Если не считать динамическую типизацию минусом, конечно.
>>2275717 Я тут мимокрокодил, но сразу могу сказать: скобки лучше пробелов ебаных.
А вообще ощущение от питона, что он пытается заставить тебя мыслить квадратно-гнездовым образом. Это вроде даже в дзене питона прописано. Так-то даже кресты лучше питона, если выразительную силу не брать в рассчёт.
>>2275643 Same shit - англоязычное выражение такое. "Суть одна хуйня". Слово "shit" воспринимай как иронию. >То что ты в какой-то там библиотеке увидел говнокод для веба, это не показатель даже среднего по больнице. >какой-то там библиотеке >Hunchentoot Если для тебя Hunchentoot - "какая-то там библиотека", значит ты в лисп-сообществе ни ногой. Лады, вот еще примеры: City of the Damned https://github.com/gwathlobal/CotD Mezzano. Луп на лупе сидит и сетфом погоняет. https://github.com/froggey/Mezzano
Любопытные проекты, чё. По твоим меркам их тоже быдлокодеры писали?
>>2275717 Макросы Стабильность реализаций Неожиданно высокая производительность (если тюнинговать - в 30 раз быстрее Пайтона) Самый проработанный в мире exception handling SLIME REPL, позволяющий дописывать и переписывать программу прямо во время исполнения CLOS, делающая почти все классические паттерны ненужными Декларативность (не последовательная, но, например, нет цирка с добавлением свойств новых свойств экземпляру класса, свойства декларируются в описании класса)
А вот что два лисп-гуру думают о различиях между Python и Common Lisp: 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.
>>2275789 > Same shit я знаю что такое сейм шит. и я тебе говорю, что ты даже сам не понимаешь что говоришь, когда заявляешь что питон и сл сейм шит.
> Если для тебя Hunchentoot - "какая-то там библиотека", ну да, какая-то библиотека, я же не веб девелопер ебаный.
> Любопытные проекты, чё. По твоим меркам их тоже быдлокодеры писали? блять, чел, 100% функциональщину ты найдешь только в хаскелле. не, ну да, раз в сл можно использовать циклы и присваивание, все, пиздец, это то же самое что и питон, ну а хуле, все же языки с присваиванием и циклами одинаковые.
пиздец, ты видел код на обоих языках, точно? они сука пишутся абсолютно по-разному. сейм шит можешь засунуть себе откуда взял, заебали уебки которые думают что все вокруг одинаковое, потому-что разделяют какие-то общие свойства. нахуй так жить?
>>2275814 > you don't miss macros all that much because it does have eval, этот норвиг сломался, несите нового.
я писал на обоих языках, в отличие от норвига, который питон видимо только издалека видел когда тот только высирался гвидоном на свет, и отчетливо понимаю, что оба процитированных высера не отражают реальности НИ-ХУ-Я. то что питон спиздил какие-то фичи из лиспа не делают его ничуть похожим на лисп. самантически? какая-нахуй семантика, лол?
>>2275823 >блять, чел, 100% функциональщину ты найдешь только в хаскелле. 100% ФП не работает за пределами факториалов, а потому не нужно. А если работает, то потому, что возвращается к тому, от чего пытается дистанцироваться (то, что называется do-нотацией).
>не, ну да, раз в сл можно использовать циклы и присваивание, все, пиздец, это то же самое что и питон, ну а хуле, все же языки с присваиванием и циклами одинаковые. С чего бы ты решил, что для меня Python-like - это только циклы и присваивания? Ты забыл, что у обоих языков: 1. Автоматическое управление памятью 2. Динамическая типизация 3. Интерпретируемость 4. Наличие REPL с интроспекцией 5. Лексическая область видимости (напоминаю, в Emacs Lisp она по-умолчанию динамическая) Если выебываться, можно еще добавить аппликативный порядок слева-направо (для сравнения: в Scheme и OCaml порядок аппликации вообще не определен). Я на крестах оказывался в аду указателей и издежек типизации, так что для меня первые два пункта существенны, чтобы говорить о схожести языков (схожесть языков состоит в том, что решения задач логически схожи). Думаю, можно и не говорить, что по синтаксису сравнивать языки могут только вкатывальщики, ибо логическое содержание кода от синтаксиса не зависит (разумеется, если речь не о, мать его, Perl). >пиздец, ты видел код на обоих языках, точно? Видел разный питонокод. CL в продакшене не видел и, скорее всего, не увижу, но открытые проекты почти всегда создают впечатление, что люди пытаются воспроизвести на CL качественный Python-код. К книгам типа On Lisp этот код имеет довольно далекое отношение. On Lisp и подобное зачитывают задроты, пишущие библиотеки макросов.
>>2275825 >самантически? какая-нахуй семантика, лол? Внезапно, буржуи называют семантикой логическое содержание кода. Это только пидорахи могут назвать семантикой что угодно, вплоть до отождествления с синтаксисом.
>про макросы и евал это вообще рофл ояебу Это сейчас за его использование в продакшене ебут, а в то время eval действительно применялся. Изначально именно им и делались лямбды. Гвидо их ввел в язык из-за того, что через eval их реализовывали все, кому не лень. Вот так это выглядело: def fn(form): args, body = form.split(":",1) exec('def f(' + args + '):return ' + body) return eval('f')
>>2276197 >100% ФП не работает за пределами факториалов Работает. IO a = State RealWorld -> (State RealWorld, a) >то, что называется do-нотацией Это просто синтаксический сахарок к (>>=)
Анон, насоветуй может есть какие-нибудь мастрид статьи, не слишком тухлые, по концепциям кложи/ФП. Может какое-нибудь сравнение ФП языков с императивными языками. Чтобы объективно и интересно.
>>2279100 >>2279107 Конструктор ещё сырой, но сам clog понравился. Хуяк-хуяк и готово. И даже не остаётся характерного для таких крудов послевкусия веб-говнеца во рту. В общем, одобряю, бате тоже понравилось.
Короче. Вопрос такой. Заебался на своей работе т.к. там все челики зарплатные. Правда ли что на лиспах идейные и заинтересованные пишут ? Вкладывать время в какую-нибудь кложу а уж тем более работу на ней - весьма рискованное предприятние.
Но если шанс что я попаду в интересный круг людей от этого значительно повышается, может быть стоит рискнуть.
Хотя в чатиках я пока вижу не очень однозначных людей. Всяких душных узколобых дедов. Это точно не та аудитория с которой хотелось бы работать в одной команде.
Думаю, что от работы надо кайф искать, и по возможности высокую зп. Собственно, сейчас stackoverflow показывает, что на кложе самая высокая зп и это второй язык как "любимый".
>>2282980 Ну, ты точно зелёный, но пока не ясно: толстый или слишком юный >Думаю, что от работы надо кайф искать Тогда ищи интересный проект, а не работу "программистом на языке".
>>2282986 Я просто восторженка-инфантил. Нет детей, кредитов, целей на далекое будущее. Интересно программирование как сама суть, а не как решение бизнес говна. Но платят деньги за бизнес. А работаю я сейчас в месте где зарплатные челы заправляют, и на попытку выйти на диалог про код вне рабочего времени они тупо шлют.
Я думаю надо искать вместе. И интересную технологию, и язык, и интересный проект. Но реальность конечно такова, что получишь либо что-то одно в лучшем случае, либо хуй за шиворот и щеку одновременно.
Поэтому можно только увеличивать шансы разными способами: - на кложе платят много - на лиспы идут заинтересованные умные люди
>>2282697 >Кути и wx написаны на недоязычке без ABI Биндинги? Ну, это я загнул, да, просто то, что первое в голову пришло. Но если нет либы, то почему бы не написать? Да, нужно быть отбитым долбоёбом, которому больше всех нужно, но всё же? И это я ещё не знаю, как та ось на лишпе работает. Может там они уже написали гуй-либу?
Ещё про браузеры была мысль. Думал попытаться в дополнение к игрушечной ОС, что в универе писали, попытатся свой браузер написать. Только не с JS в качестве языка скриптов, а Scheme. Никаких асидов3, просто попытаться заставить локальный интернет на своём компе работать на схеме. Бровсер на лишпе, конечно же (но чувствую, что тормозить будет безбожно). Может быть лучше кресты, но тогда за свою жизнь я точно даже самый маленький MVP не напишу.
Не по теме треда канеш, но здесь наверное много кто emacs использует. Как заставить его сохранять файл автоматически при любых изменениях? Чтобы я не нажимал C-x C-s вообще. Вот типа я напечатал 1 букву и он сразу же на диск должен сохранить.
>>2256609 (OP) Я совсем новичек и не понимаю, scheme типа нельзя использоваться на windows? Всё просмотрел, попадаются только ссаные .tar файлы, которые, как я понимаю для линукса. Никогда линуксом не пользовался и отвращение к этой операционной системе. Можно как-то учиться по sicp используя scheme на винде?
https://github.com/phantomics/april >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, посоны
>>2288142 Хотел спросить в чем смысл лиспенного апл, когда на самом лиспе полтора аутиста пишут, но спрошу другое: Ты как-то апл используешь, кроме recreational programming(борщехлебства)?
>>2289922 >Ты как-то апл используешь, кроме recreational programming(борщехлебства)? Пока что никак не использовал, до этого момента не находил, куда его можно применить. Всё-таки это не язык общего назначения. >в чем смысл лиспенного апл Это же охуенно, теперь можно будет тонны числодробительного лиспокода заменять одной апловской строчкой. Ещё бы подсахарить макросом чтения, добавить поддержку в емакс и sb-simd прикрутить...
Лиспач, какой тип проекта делать чтоб изучить кложу? Чет я начал фуллстэк хуйню пилить, и залип на интеропе жабаскрипта и других либах на очень долго. Прогресс не идёт, а вместе с ним тает и желание возвращаться к проекту. Видно, что откусил больше, чем готов прожевать. Нужно что-то полезное, но чтобы кложа раскрылась как язык.
>>2290122 ХЗ, что тебе посоветовать. Задачки с projecteuler порешай. >Нужно что-то полезное, но чтобы кложа раскрылась как язык. Кложа взлетала только как язык фронтенда, в любом случае придётся в жабаскрипте ковыряться.
>>2291604 >Чувствуешь мощь? Кстати говоря... Аппликативность? Чек. Дефолтный аргумент для функций? Чек. Отсутствие циклов? Чек.
Вот его можно заюзать для генетического перебора программ. Хотя у меня была немного другая идея. Представлять код не как обычно, а как последовательность упрощённых диффов. Типа каждая инструкция - это не инструкция программы, а пара из: некоторого id, который говорит в какую точку дерева кода вставить данную операцию; и собственно самой операции. Таким образом, хоть код и будет огромной нечитаемой кучей дерьма, зато его можно будет сравнительно просто скрещивать. Опять же, возможно с APL ещё проще, потому что аппликативные языки в этом плане ебут всех.
А APL - не turing-tarpit? Кто-нибудь на нём КРУТОЕ и БОЛЬШОЕ писал? Или это прямо excel и всё?
>>2291680 раз есть коммерческий dyalog, значит есть какой-то спрос > tarpit > difficult to learn and use because it offers little or no support for common tasks в том же диалоге есть стандартная библиотека, ты можешь работать с данными итд. апрель тем и мал и годен, что все это дерьмо на себя берет коммон лисп.
>>2291815 понял >>2291816 я апл в основном для использования в пределах лиспа изучаю, ну и просто для интереса. поэтому тут мнения не имею. тащемта, уже встречал на просторах инета хейтеров Ж из-за его предательского аски-нацизма, и я их, в принципе, понимаю
Если что, я тот челик сверху, что ляпасом давился. И мы были одной из первых групп, что получили компилятор с ОСОБЫМИ символами. А как их вводить ебитесь сами. J лучше тогда, в этом плане. И всегда будет лучше. Из-за ascii, да.
>>2291879 Имакс теперь дефолт-инструмент? Нет? А вот аски да. Так же как текстовые логи vs бинарные логи. Одна из многих причин, почему systemd - говно, хотя и решает какие-то там очень древние проблемы инит-скриптов. Всё равно говно.
>>2291883 просто надо помнить что код гораздо больше читается, чем пишется. и на Ж жаловались именно из-за похеренной читабельности (да, именно похеренной), как мне помнится. да и емакс я в пример привел. ну и что что не дефолтный? эксель вот дефолтный и кому от этого хорошо?
Да, я знаком с утверждением, что человека такая скотина, что ко всему привыкает. Нет, я с ним не согласен.
APL - это пиздец. У него слишком кратко записываются операции. Ляпас в этом плане ещё больший пиздец: у него ещё память нужно вручную менеджментить. И "плотность смысла" в коде скачет очень сильно в обоих языках.
Да, код пишется больше на читателя. Именно поэтому APL - не то. Я согласен, что он для чего-то наколеночного. Для программирования со скоростью мысли. Но поддерживать это? Увольте. Личное мнение, да, но вселенской истины за душой не имею. Что есть то есть.
>>2291895 Да, не, я отчасти согласен. В пример, ¯6 для acosh или 2 для косинуса - это уебанство. Но это мелочи, которые можно иправить. Мне апл понравился из-за семантики - бродкастинг тот же. Базовых функций и операторов - на две страницы по сути https://docs.dyalog.com/18.0/CheatSheet%20-%20Nomenclature%20-%20Functions%20and%20Operators.pdf Векторный стиль многого стоит, и я его предпочел бы луп лапше в большинстве случаев. Если знаешь АПЛ, не вижу смысла его не использовать если есть возможность. Не для мегапроектов, конечно, но именно для вкраплений как ДСЛ, самое то. Поэтому апрель и годен. Еще нужную семантику добавит автор, что бы ридер макросами можно было пользоваться без пота, и будет збс.
>>2291895 >APL - это пиздец. У него слишком кратко записываются операции. Пиздец не потому, что операции односимвольные, а потому, что они перегруженные. Почти у всех минимум по две интерпретации: монадная и диадная.
>>2291910 Ниет. Но я всё ещё пишу в виме, ага. И я не думаю, что кто-либо пишет на лиспе, чтобы заработать, поэтому инструмент у каждого может быть свой. Не обязательно EmacsOS.
Ещё вопрос, если кому-то занятся нечем. Мне тут было лень писать хороший код и я наговнокодил интуитивно. Что-то такое: https://pasteall.org/DQ6C
Вопрос в следующем: где-то уже видел такое, чтобы функция передавала внутрь другой функции саму себя и таким образом делала надстройку над поведением первой. Вроде бы похоже то ли на декораторы, то ли на продолжения, то ли на инверсию зависимости, то ли просто на говно. Может есть какой-то дизайн паттерн такой?
>>2293190 >и объясни русским языком что хочешь сделать Хуясе требования. Возможно я написал бы лучше, если бы знал.
Пытался расширить функционал call-editor, не меняя её (потому что пробовал уже менять, типа создания макроса with-many-temporary-files, но оказалось, что :close-stream работает только в боди самого глубоковложенного макроса. Все остальные стримы не закрывались). Почему и сказал - интуитивно. Увидел что там вызывается функция и понял что можно костыльно расширить функционал через замыкания.
Точнее так: 1. Хочу открыть неопределённо много темпфайлов, записать в них всех различный текст и закрыть стримы. 2. После чего вызвать редактор один раз для всех файлов одновременно. 3. Затем вернуть содержимое всех файлов.
И чтобы я точно не забивал гвозди микроскопом: намерение состояло в том, чтобы отредактировать редактором по выбору много текстов сразу и вернуть юзеру результат.
> совет: попробуй сделать без setf и просто посмотри как выйдет Не могу. Изначально пытался без setf и мне мозгов не хватило. Здесь вообще можно без setf? Как?
>>2293259 >Катаморфизм на костыляхIoC Во, выглядит похоже, но я так и не понял, что такое катаморфизм. Теоркат, снова.
> Замени на loop/reduce и будет не так страшно выглядеть. А как? Редактор должен вызываться для всех файлов сразу и я не вижу способа не вызывать его на каждый файл отдельно, если это будет просто цикл. То есть этот вызов должен быть внутри всех форм with-temporary-file (для многих файлов). Подразумевается макрос?
>>2293879 > не понял что делает /&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 никогда не юзал)
>>2293939 > У меня малость ОКР по поводу вот таких неявных штук. ок, но все равно лучше было бы передавать "" вместо 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 никогда не юзал я загуглил его щас тока, в уиопе не было подобной функции. хотя ты можешь и этот фад без особых проблем выкинуть.
>>2293981 >ок, но все равно лучше было бы передавать "" вместо nil, что бы потом if не юзать Дык в этом весь смысл? Опять же, видимо точки зрения разные. Мне вместо "записи всегда", но с пустой строкой по дефолту, кажется удобнее "записывать иногда", но с nil и чеком.
> щому? Потому что большая жирная сука. Где-то читал, что в неё даже новые символы не добавляют, потому что в уже существующем коде начнутся конфликты.
> стрим закрыл, пытаешься читать темп файл. вряд ли он удалится с времени закрытия стрима до времени попытки его открытия, но в теории это возможно. но забей. stream is closed != tempfile is removed Файл относится к файловой системе. Стрим - это объект лиспа. Почему тебе непонятно я хз. Мне дока кажется непротиворечивой.
> в уиопе не было подобной функции Вот поэтому я и думал, что возмножно это можно решить без голого создания темпфайла. Раз уж так решили либу ограничить, значит был смысл.
>>2294000 > Где-то читал, что в неё даже новые символы не добавляют, потому что в уже существующем коде начнутся конфликты.
да, потому-что ее массово делают :use, но это не вина александрии. добавляют символы, но в неймспейсы alexandria-1 2 итд. то что она особо жирная первый раз слышу. ее все юзают, хз зачем себя мучить, это же не маргинальщина какая.
> stream is closed != tempfile is removed насколько мне известно темпфайлы может удалить ОСь, на то они и темпфайлы. а раз стрим закрыт, то темп файл по идее тоже может и не нужен. может быть я не прав, не знаю.
> Раз уж так решили либу ограничить, значит был смысл. уиоп это тупа утилиты для асдфа. не написали потому-что не нужно было.
>>2294017 >>2294021 А, вот как. Я просто думал, что with-temporary-file не использует какие-либо механизмы ОС (которые удаляют файл, после закрытия дескриптора), а просто в тупую создают файл во обозначенной директории, пока выполняется код в &body макроса.
В uiop даже есть функция, которая говорит имя папочки, где временные файлы создаются.
>хз зачем себя мучить, это же не маргинальщина какая. Опять же, больные на голову программисты. Мне ещё иногда говорят, что я шиз, раз не юзаю boost с плюсами. А мне просто лишний груз тащить неохота. Когда появляется какая-то подзадача, которую иначе не решить (или велосипеды нагородишь), я затащу же.
>>2294036 я принципиально тащу если библиотека проверенная и популярная, даже если это 1-2 функции. зачем раздувать свой код, если можно его не раздувать. чем меньше кода, тем лучше.
ладно, я думаю каждый останеться при своем, как всегда, но и твоя позиция мне в принципе ясна.
Бля, посоны, просто хочу поделиться с вами, так сказать, что в #commonlisp пиздец душные хуилы сидят. Многие еще и петросянят. Ну и вообще ведут себя непристойно и по-пидарски как-то. Не все конечно, но кто там бывал тот знает о чем я.
За что я и люблю борды, никто никому глаза не мозолит, нет тупых ников, нет завсегдатаев-пидорасов, а если есть, то они в принципе не выделяются из толпы. По крайней мере здесь. Спасибо вам всем. С меня как обычно. Ну и так, чисто на всякий случай, идите нахуй, тоже.
>>2276197 В Python нет REPL, есть только shell. Так называются оболочки, которые не доросли до репла. Репл разве что в Scala и Ruby из популярных языков есть и тем до лиспового репла далеко, ближе SML/Ocaml (не помню в Haskell есть репл вообще?).
>>2297628 Попробуй сделать eval инструкции if, while и т.д., проблема в том, что они не являются выражениями, а в Lisp, Ruby, Scala являются. Ты можешь открыть питоновский "репл" или даже "репл" php, только слова REPL ты там не увидишь, читать может, печатать может, eval'ить не может.
>>2298318 >то тогда и bash можно будет REPL'ом обозвать Вообще-то, он им и является. Ты даже можешь явно его написать: while true; do read expr && echo $(eval $expr); done
>>2298480 Ну ты используешь наверное не как основное окружение для разработки, а так на фоне программы погонять, также как и питоновский шелл какой-нибудь. В общем не знаю, по мне так разделение между REPL скажем Lisp и Smalltalk и Shell питона, php или bash вполне очевидно. Пользуюсь по работе конечно шеллами больше, но хотелось бы в идеале, чтобы работа была с полноценным реплом всегда.
>>2298313 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'ить / всё-есть-выражение - это критерий репла? Или только необходимое условие?
>>2298797 Проще, но это бьёт по производительности сильно особенно, если это интерпретируемый ЯП вроде Ruby. Да и разбираться в лямбда исчислении и делать так, чтобы всё имело логику и возвращало результат наверное геморнее, чем фигачить инструкции.
>>2299378 >Проще, но это бьёт по производительности сильно особенно, если это интерпретируемый ЯП вроде Ruby. Видимо, не сильно-то и бьёт, если вспомнить, что речь шла о питухоне, который даже в сравнении с руби скоростью не отличается.
>>2299384 Вообще ты прав. К тому же и там и там всё переопределяется в рантайме, и там и там всё есть объект и т.д. Мне лично всё есть выражение доставляет тем, что обычно оно строется на лямбда исчислении и можно глянуть исходники скажем выражения if, for и т.д, когда в языках вроде питона их принципы работы можно глянуть только в исходниках интерпретатора. То есть по всей видимости те языки, где всё есть выражение созданы на миниатюрном языке лямбда-исчисления поверх которого реализовано всё остальное. Возможно в питоне те части, что недоступны на самом питоне, а написаны на си в интерпретаторе, работают побыстрее того же самого реализованного на руби. Сейчас конечно в руби есть JIT, но по-моему он всё-таки тормознее питона.
>>2299388 >Сейчас конечно в руби есть JIT, но по-моему он всё-таки тормознее питона. Руби когда-то давно был медленным, ещё до появления 2й версии, но потом они сравнялись с питоном по скорости. Вообще, те ограничения чисто синтаксические и, по всей видимости, идеологические, мол, нехуй выёбываться этими вашими лямбдами, пишите просто.
>>2299388 >можно глянуть исходники скажем выражения if В подавляющем большинстве лиспов if - это особая форма, её исходники - это исходники компилятора/интерпретатора.
>>2286647 > Твой диск будет не в восторге. Во-первых, 2022 год на дворе и у меня макбук за 200к с SSD. Во-вторых, я не спец по файловым системам, но предполагаю, что файловая система подгружает часто используемые куски в оперативку.
>>2301413 >Во-первых, 2022 год на дворе и у меня макбук за 200к с SSD. Нудык у тебя до конца этого 2022 года life left в смартах твоего SSD упадёт до нуля таким макаром.
>>2301474 Ты будешь сохранять не букву, а весь файл целиком. Вообще да, SSD скорее всего скурвится медленнее от такого обращения, чем HDD. Но всё равно не понятно, нахуя тебе это. У тебя питание нестабильное что ли? Каждые пять секунд свет может вырубить?
>>2301685 Хочешь поиграть в подмену понятий? Файл - низкоуровневая сущность, пользователю она не нужна, пользователь работает с объектами. Ты же не задумываешься, под каким id и в какой таблице хранятся посты на дваче? Нет, ведь это задача движка. Так же и пользователю не нужно задумываться о сериализации, это задача ОС.
>>2285102 У меня в хуке при переходе в модальный нормальный режим сохранение текущего буфера, если у него есть файл. То есть как раз получается напечатал кусок - сохранил. Костыль примерно такой:
ну дезайнер понял что джаваскрипт говно, а кложаскрипт рулез. с просвящением его.
а так конечно очередной безыдейный продукт для синергетических стартап фаундеров, которые хотят кАллаборейтить в реал тайме со своими тиммейтами.
да и честно сказать, вебня попросту говно, любая, на чем бы она не была написана. но я все равно рад за кложеделов, они конечно не Ъ, но как никак братья по разуму.
>>2319025 для годотей там тоже форкнули. однако хуле? если ты лишпер и тебя тошнит от креcтопараш, от сишарпожав, так тут других вариков для 3д игр на лиспе нет, эта бля аркадия - это бля дарование свыше, слышь, откровение самого Аллаха.
>>2318982 >очередной безыдейный продукт Не, правда удобная штука. Схемки всякие рисовать удобно, быстро взял и расшарил.
>пикрел реальная годнота на кложе тащемта Реальная годнота на кложе - это ж датомик новое поколение вдохновленных орг-модом и zettekasten'ом баз знаний - https://roamresearch.com/ и еще как минимум один аналог тоже на кложе запилили, плюс поверх орг-мода тоже на елишпе несколько клонов запилено. Кстати >>2310866 вроде тонский пилит как раз для роамресерч
Ну а так вообще на кложе много такого было, тот же circleCI на ней, status, и т.п.
Бля, ебанутая макаба, не дает запостить. Я ебал. Ради одной строки пастебин открывать из-за кривой макабы. Короче пикрил строчку макаба не дает запостить с ошибкой "forbidden". Хуй его знает, что там абу накосоебил.
>>2319047 > Не, правда удобная штука. Схемки всякие рисовать удобно, быстро взял и расшарил. Я такое вроде каким-то юмл редактором онлайн и без смс делал, давным давно. Ну да ладно. > ettekasten'ом баз знаний - https://roamresearch.com/ Да, тоже годная вещь по видимому. Не знал что она на кложе. вкладка video demos отхрючила 2.5 гегоболта, 2 ядра и продолжает пердолировать держу в курсе
>>2319029 Нет, с крестопарашей проблем никаких, но делать видеоигры на сирешётке с её жирнючей виртуальной машиной, сборкой мусора и рантаймом размером с мамонта - это долбоебизм чистой воды.
>>2319279 так ты просто хейтер. и кложа там не компилируется в сирешетку если что, а прямо в байткод вм. у меня трезвый взгляд - убогокресты для лоу-левел хуеты двигла и оптимизаций, возможно каких-то дрочевных алгоритмов, динамика для написания собственно игры. абсолютисты крестовые рисуют сраные треугольники, пишут бесконечные маняфреймворки и прочую хуету, им не до игр. а те кто таки пишут, но не используют динамику - рано или поздно сами понимают что они долбоебы. маняскорость - далеко не все в этой жизни, как бы сочно фанбоям это не снилось в их влажных снах. а говорить что у крестопараши нет никаких проблем в 2к22 это я не знаю кем нужно быть.
>>2319357 >у меня трезвый взгляд - убогокресты для лоу-левел хуеты двигла и оптимизаций, возможно каких-то дрочевных алгоритмов, динамика для написания собственно игры У меня взгляд точно такой же, но сирешётка - это омерзительный выпердыш раковой опухоли IT-индустрии. К счастью, эта опухоль ушла из этой страны, так что свет в конце туннеля есть.
>>2319410 > К счастью, эта опухоль ушла из этой страны да, щас бы всем лисперам хуяк и в госструктуры, делать айти переворот. станем мировой столицей лиспа. за 10-15 лет перепишем весь говнософт на божественных скобках, будет дрочить в лицо все поехавшим макакам, недовольные будут собирать на заводах железо, копротивляющихся накажем отменой интернета и обязательными курсами лямбда калкулуса. всем в дом по меззано. передовая нация, нахуй. и хуй нас кто догонит. хватит с нас борщей, сука, теперь только икра!
у нас же кстати был кровавый госинтерпрайз на лишпе, емнип, в питере какая-то контора была, какое-то решение то ли по спаму, то ли по документообороты через почту, короче чет с обработкой имейлов связанное было
>>2319047 >новое поколение вдохновленных орг-модом и zettekasten'ом баз знаний Олсо, ты мне напомнил, что моя параша недописанная лежит. Ну как, основную часть я сделал - это было очень просто. А вот демонстрационные юзерконфиги на лиспе - нет. Потому что это нужно бд придумать и сделать, и инторфейс комманд для CLI должен быть норм. Поэтому даже простую еболу из двух-трёх таблиц всё не могу запилить.
Ну да, юзеру моей проги пизда. Хотя я знал это с самого начала. Проблемы полной кастомизируемости и CLI.
>>2259171 Роам и логсек же на кложе, а не на кл...
>>2259321 >Считай что мне нужен конструктор для сборки crud приложений hyperfiddle еще глянь а, уже советовали
Вообще вот эта шняга что ты описал, ну про чеки и чтоб потом добавить калорийность, и чтобы при этом это все было юзабельно и декларативно, это конечно очень сложно спроектировать так, чтобы это все работало.
https://github.com/clasp-developers/clasp Опа, выкатили clasp 1.0 Это реализация общелиспа на llvm, если кто не знает. Интересно, сильно ли ещё отстаёт по скорости генерируемого кода от sbcl
>>2324629 LLVM дает все средства для статической компиляции, VM там по означает не совсем то, что ты думаешь, хоть и слова те же. Но вообще грамотный трассирующий JIT (тот же LuaJIT) даст пососать среднему оптимизирующему компилятору (тот же go).
>>2310866 Он там рисует виджеты на канве что ли? Пиздец. Нахуя? Основные проблемы жаба-гуя ― практически никакая интеграция с ОС и рабочей средой и всратыйинородный вид. Он их не решает, а просто пилит ещё один нескучный велосипед с квадратными колесами. Во-вторых, фреймворк на кложе? Серьезно? Жвм и без того слишком прожорлива и нерасторопна для десктопа, а с этой йобой небось у калькулятора запросы будут как у эклипса. Короче, не разделяю твоего восхищения. 10 ёбаных хистеров из 10.
>>2329045 Без аннотаций типов дающих возможность компилятору избегать дженерик вызовов цирк с fxvector и fxremainder не считается, рабочего disassemble и dynamic-extent чех-схема твоя сосёт с проглотом у CL. Алсо, в статье автор подсуживает схемке - код на ней более хитровыебанный с самого начала, потому что сохраняет уже посчитанные праймы, ясен хуй он быстрее будет. Но вообще статья хорошая, плюсанул.
>>2329873 > хуюмблуи щето? ну хочешь ты кого назвать доблюдоебом, так назови его распижопошником, какой еще хуеплут? >>2331195 Вот какой результат показал бы коммон лишп это интересно. Хотя как-то похуй даже, и так давно всем ясно что для чего лучше подходит. Ну как всем, лисперам: СЛ для всего, кроме тех мест где нужна сишка. Кстати вот кто-то сравнивает лиспы, но там дилетантские бенчмарки, но все равно, может кому интересно: https://jakob.space/blog/thoughts-on-lisps.html
>>2333063 Братан, ты не представляешь, как остоебенели эти туторилы для начинающих в кложе. Я, блядь, к скобочкам привычен, что такое биндинги переменных, знаю, и с иммутабельной парадигмой давно знаком. А вот чтобы нормальный туторил по рефрейму сделать, для людей, которые об современный жабоскрипт особо никогда не шкварились, так нет, это ну его нахуй, лучше в миллионый раз нуфаням объяснять, как факториал мемоизировать.
>>2333375 >У нас тут вообще-то ИНТЕРПРАЙС, СТАБИЛЬНОСТЬ, ОБРАТНАЯ СОВМЕСТИМОСТЬ. В кожуре-то? Ну если только после того, как лохматый на неё окончательно забил
>>2324023 > Плюсовый кал не взлетит. Понимаешь, это как копрофилия. Просто говно никто конечно воспевать не будет, суть копрофила в том что бы попросить партнершу навалить ему на грудь а потом размазать все это сиськами по его телу. Другими словами, в узких кругах класп таки взлетит.
>>2333988 Я хочу уточнить, что бы было все предельно ясно. Короче, когда няшная тянка начинает размазывать сьськами кал по телу, копрофил начинает неистово дрочить и облизывать эти самые сиськи. Иначе нещитово. Ну это я так уточнил, вдруг кто-то не понял. Калсп точно в тренде будет.
Пишу сразу. Я нюфаг, просто забавляюсь в геЙмдеве и пилю сраный рогалик
Мне нужно скомпилировать и запустить scheme
Пытаюсь через емакс, всякий раз пишет searching for program: no such file or directory, scheme
Как мне правильно компилировать и запускать через него?
Попробовал guile, он создает scm.go фаил, но опять же, я не понял как его запустить, хотя уже перетыкал все флаги в man. И несмотря на -L он все время сохраняет scm.go в дирректорию самого guile, а не куда я указываю.
>>2351030 >Пытаюсь через емакс, всякий раз пишет searching for program: no such file or directory, scheme Установи в емаксе geiser, настрой geiser-default-implementation в 'guile. Это для разработки, для развёртывания, чтобы много не ебаться, сделай, например, так: https://stackoverflow.com/a/37776400 (у всех твоих игроков должен будет быть предустановлен guile).
>>2351030 Нерелейтед, но. Как вариант попробуй рэкет, все-таки там сразу все настроено, ну и для создания простых игрушек он годится, вроде бы даже книжка какая-то на эту тему была.
Наконец дошли руки до лиспа. Я вообще не программист, просто иногда накатывает и я начинаю учить какую-нибудь хуйню. Скобкодрочерство меня не пугало, а сам лисп давно манил своей необычностью. Ну что, скачал portacle, начал читать pcl, вроде шло нормально, а потом ДАВАЙТЕ ПИСАТЬ БАЗУ ДАННЫХ. Понятное дело, что там потешная хуйня, а не бд, но блять, я уже на середине просто начал скипать это говно. Нахуя так резко кучу всего вываливать и только потом А ТЕПЕРЬ ДАВАЙТЕ изучим синтаксис. Я просто охуел. Понятное дело, что я тупой ебанат, но бля, неужели дальше будет ещё хуже и сложнее всё? Может это была не лучшая книга для вката? Повторю, что начал я всё это дела не для какого-то профита, а из интереса.
>>2366775 > и органическую парадигму Было написано для господ на бронепоезде.
А вот про "отмораживание ушей" я бы поспорил. Ещё Макконел в совершенном коде писал, что надо использовать язык программирования как инструмент, а не как парадигму (это было, когда он описывал свой опыт с Visual Basic, номер страницы и издания не помню).
Ебал я вашу органическую парадигму, когда нихуя не воспроизводится и ты не можешь быть уверен в состоянии образа, когда что-то туда пихаешь. А каждый раз проверять какие символы уже там, а какие нет, меня заебёт.
Нет, пчел, лисп мне нужен из-за его гомоиконичности и уникальных возможностей макросов. IDE и свой единственно правильный стиль программирования можешь в жопу себе засунуть.
>>2367744 >>2367200 Если честно, я от этого всего получаю какой-то Squeak/Smalltalk вайб. Это вот то самое, из-за которого я начал ненавидеть тру-Ъ ооп, потому что говно ебаное.
>>2365619 > Тут все в емаксе прогают, но раз ты не осилил, посмотри этот список в кукбуке: https://lispcookbook.github.io/cl-cookbook/editor-support.html >>2366281 > Попробуй doom emacs, если не осиляешь настроить. А потом удивляются, чё все помимо кложи в луже валяется узких кругах только известно. Согласен с аноном выше - нахуй не нужно это красноглазие, я в лисп пришел за мощью языка, а не средств написания его. Пиздец, за такое количество времени не сделать ничего похожего на человеческие промышленные иде - реально идея гну настолько выше здравого смысла? я тащемта осилятор, вим основной редактор и че надо настрою, но красноглазить не буду из принципа, идите в пизду
>>2368337 >все помимо кложи в узких кругах только известно. >помимо кложи Скала, потому что тоже jvm, потому что тоже взлетела на волне интереса к фп в 2010-2015 и потому что по итогу тоже никому нахуй не нужна, но не настолько как кложа
>>2366872 > когда нихуя не воспроизводится и ты не можешь быть уверен в состоянии образа, когда что-то туда пихаешь. А каждый раз проверять какие символы уже там, а какие нет, меня заебёт. Алсо, ты там ещё и asdf не осилил что ли? Какой запущенный случай...
>>2367744 >Ну, для начала, paredit впадает в эпилептические припадки, когда я юзаю S или Vcc Блядь, да возьми ты настоящую IDE, вместо того чтобы изъёбываться и писать код в текстовом редакторе с мокрописьками. В емаксе же evil-mode есть, всё для людей, нет блядь, не хочу для людей, хочу в блокноте из семидесятых код писать, пидоры блядь
>>2368362 Почему? Ридер-макросы может быть. А обычные-то как?
>>2368411 Не угадал. Первое, что осилил. Но как перезагрузка всей системы в образ отличается от моего старого способа программировать? Нахуя мне ваш слайм тогда?
>>2368702 Лел. > Вообще-то есть SLIMV и VLIME > Блядь, да возьми ты настоящую IDE > швабода выбора я сказал Знал, что лисп-хакеры тоталитаристы ещё когда познакомился с ЕДИНСТВЕННЫМ ПРАВИЛЬНЫМ КОДСТАЙЛОМ ЧТОБ СВОЙ НЕ СМЕЛ ПРИДУМЫВАТЬ УУУ СУКА. Но это я ещё переварил.
А вот то, что ты сейчас спизданул, смешно вообще. Пальцы в имаксе сам ломай. Или скажешь, что ивлмод покрывает все юзкейсы? Даже слайм? И электроноговном ("настоящая" IDE) тоже можешь сам себе очко щекотать.
>>2368903 > Но как перезагрузка всей системы в образ отличается от моего старого способа программировать? Какой-то ты совсем дубовый. Ты описал проблему: >каждый раз проверять какие символы уже там, а какие нет >нихуя не воспроизводится Решение - описывать asdf-систему(ы) и пакет(ы). А программируешь ты со слаймом или перезапускаешь каждый раз образ или тестируешь свой говнокод исключительно на свежекупленном железе со свежеустановленной ОС -- дело десятое. >Нахуя мне ваш слайм тогда? Тебе выше кидали ссылку, где хипстор-кложурист(!) объясняет, что такое репл, зачем он нужен и как с ним программировать. Объясняет для совсем тугих джавистов.
Я человек далёкий от программирования, работаю проектировщиком в Авоткаде(если конкретней Plan 3D) . Но у меня возникло желание написать макрос облегчающий работу. По тем урокам, которые я нашёл, делать это надо на языке AutoLisp. В целом как писать нужный мне код понятно, вопросов нет. НО возникли большие сложности с проверкой того что я сделал. Пишу я это всё в встроенном в автокад Visual Lispe'е и вроде как он идеально подходит для этих целей, но у меня регулярно случаются краши программы на пустом месте, та часть кода, которая секунду назад давала нужный результат, при повторном запуске не работает и всё в таком духе.
>>2382765 Вчера нашёл в чём проблема. Логики правда не понял. Надо было добавить две строки пикрелейтед. И после этого зависания и краши прекратились. ХОТЯ В ТУТОРИАЛЕ ПО КОТОРОМУ Я ДЕЛАЛ И БЕЗ ЭТОГО ВСЁ РАБОТАЛО.
почему писать на лиспе под винду такая хуйня? я хочу винду. ваши имаксы и прочая залупа типа квиклиспа тоже ставится через жопу (если ставится вообще). я ебал нахуй. так бля расхочется писать на лиспе. уже так дохуя прочитал о языке, заряженный сажусь писать, а везде о така хуня. это невыносимо. да, я могу прокинуть иксы по саше и прогать на домашнем серваке, но это блядство.
Вообще в Visual Lispe есть возможность подгружать только выделенную часть кода, что я и делал. И даже когда всё было прописано правильно, он падал. Теперь я просто в функцию добавляю строки и так же частично подгружаю.
>>2384708 >почему писать на лиспе под винду такая хуйня? ОС для домохозяек же, хули. Программировать под ней на любом языке - боль и страдание. >ваши имаксы и прочая залупа типа квиклиспа тоже ставится через жопу (если ставится вообще) quicklisp ставится без проблем, у него зависимостей ноль, а с емаксом чуть сложнее: https://github.com/doomemacs/doomemacs/blob/master/docs/getting_started.org#on-windows
>>2384854 >Извините, а какая разница? Разница в том, что код загружается, когда ещё не на чем рисовать эти полигоны. Потому у тебя и падало при повторном запуске. По крайней мере, я так предполагаю, самого автокада в жизни не видел.
Я так понимаю, тут никто ничего другого, кроме кложи не рассматривает? Почему? Потому что джава и энтерпрайз? Алсо не вкурил кошерности вашего СL и sbcl. Как по мне, sbcl самый хуйовый компилятор, какой только можно сделать. Мб он популярен, ибо единственный по сути. Кстати, с каких хуйов это компилятор, я тоже не понял, скомпилировать что-то на нем хуй что получится. Единственное, что плюс минус зашло - схема, особенно курица схема. Может быть еще racket - дохуя пакетов, свой roco. Но парадигма языково-ориентированного программирования не вставила. Для меня рэкэт это схема с расширениями. Алсо ебал шлюх, которые всерьёз топят за имакс. Ебаное старое неудобное лагающее говно
>>2389223 Такой себе наброс, попробуй тоньше и более точечно > с каких хуйов это компилятор, я тоже не понял, скомпилировать что-то на нем хуй что получится см. тж. save-lisp-and-die
>>2389316 > 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 хуйня на палочке
>>2389321 Мамка твоя хуйня на палочке. В бинарнике, порождённом save-lisp-and-die, есть весь лисповый ранайм вместе с самим компилятором, и ты можешь вызывать в нём тот же compile, чтобы на лету лисповый код, например, из ресурсов приложения, компилировать в выполняемый процессором код. Твой стокилобайтный хеллоуворлд так же может?
>>2389335 > есть весь лисповый ранайм вместе с самим компилятором я тащемта об этом и писал > чтобы на лету лисповый код, например, из ресурсов приложения, компилировать в выполняемый процессором код useless говно без задач
>>2389223 > Я так понимаю, тут никто ничего другого, кроме кложи не рассматривает? Почему? Все другое еще более мертвое же, ну и просто не дает никаких принципиальных плюшек относительно мейнстримных языков. лет зе сратч бегин
>Потому что джава и энтерпрайз? Потому что жс и хипстота же!
>>2390855 Семантически он близок к Лиспу. В JS функция это объект первого класса. Netscape наняли Эйка для того чтобы он реализовал Scheme в браузере. Поэтому JS унаследовал его фичи.
>>2389688 >Какой функциональный язык наименее мертвый? Все живые. Наиболее живые на мой взгляд, в порядке убывания: F#, Haskell, Clojure, OCaml, Erlang. F# самый живой, потому что крутится на .NET 6.
>>2395267 Нихуя это не траллинг. SBCL это интерпретатор. То, что камон лисп это компилируемый язык это придумали ущербные лисповоды, которые не могут смириться с тем, что лисп такое же медленное говно как питон или пыха.