Мне тут расписали что CL(SBCL) да и лиспы в целом - это язык будущего, особенно в Веб 3.0 и Нейронете. Благодаря его огромной мощности, быстроте, свободе и полиморфизму. А точнее гомоиконичности, макросам "код как данные, данные как код" т.е самогенерация программ, eval и прямому редактированию кода.Я понимаю что он стартовал слишком рано, многие уникальные решения до сих пор не имеют аналогов в иных языках, он уникально сочетает мощность, доступность и понятность. Но ведь он совсем не популярен... какой смысл мне его изучать? Нет, к самому языку у меня нет претензий, он интересен и приносит удовольствие, но практическая сторона... почти полное отсутствие каких либо стоящих проектов и просто полноценная ориентация Языка на какие либо полноценные проекты. В нём слишком малое комьюнити, и состоит преимущественно из ОТЦОВ, смотрящих на тебя как на говно... Анон, прошу, помоги мне поверить в обратно, что CL ждёт великое будущее и он не умрёт через 5-6 лет, и его не выбросят на помойку из новой архитектуры мне он дико нравится, но изучать только ради изучения, без практической стороны... ps Узнал что Last of Us заскриптован на CLClojure лесом, не пронял
>>1184909освятил тред
>>1184907 (OP)> но практическая сторона... Ты какой-то суетливый. Учи CL, переноси сознание в сеть, живи вечно.Зачем тебе бренная практичность?
>>1184913Лэйн и есть сама практичность я же не Лэйн что бы в одну харю хакнуть Ноосферу всея земле с калькулятора. В том и проблема что в CL отсутствует широкое компьюнити, этот язык навсегда останется привилегией андеграунда, ибо сложнааааа для мозга формошлёпа
На самом деле это язык прошлого.
>>1184916>В том и проблема что в CL отсутствует широкое компьюнитиЭто его преимущество.Напиши очень нужную программу на CL, и конкурентов в её поддержке тебе не будет (их нет).
>почти полное отсутствие каких либо стоящих проектов LISPеры пользуются технологией «ленивого программирования», аналогичной lazy evaluation.При этом программа не пишется, а сразу объявляется написанной. Фактическое формирование кода программы должно происходить при первом непосредственном обращении к ней, но поскольку никто не обращается, код тоже не формируется.Благодаря этому LISP разработчики экономят много времени, которое могут с пользой использоваться для эффективного троллинга.
>>1184946при чем тут это? даже жс ленивый
>>1184946Кто-то обнаружил архив элитных нульчепаст?
Даже этот тред показатель... ни одного прошаренного лиспера способного пояснить по теме Такой замечательфный язык убитый комьюнити из ленивых пидоров
>>1184907 (OP)>Узнал что Last of Us заскриптован на CLУ них не CL, а свой лисп https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
>>1185047Ну один хер, лисп позволяет перепиливать себя как угодну и на какие угодно стандарты.
>>1184907 (OP)>он не умрёт через 5-6 леттридцать четыре года как не умирает, с чего вдруг через 5 лет умрёт?
>>1185064Последний крупный, свежий проект на лиспеа не как скрепляющая хуйня для скриптов лет 7 назад проходил, флиспер или как то так, ныне почивший. Больше нет, он используется чисто как прикладной язык для макросов, при том что у него огромный потенциал от веба до АИИ(откуда его вытеснил питунус со своими библиотеками)Даже в МИТМ sicp как 6 лет уже изучают на Питоне
>>1185069clojure конечно не в счёт, он походу JS не хило потеснит
Как на ЛОР десятилетней давности попал.
>>1185289хочешь сказать Lisp не потопляем?
>>1185296мы все знаем что не тонет
>>1185296Хочу сказать, что лучше читать книжки, а не создавать платиновые треды в зекаче.
>>1185320А какая гарантия что выучив 500 листный стандарт, он останется актуальным? Я сейчас смотрю, к лиспам опять встаёт интерес, вслед за выстрелившим кложур появляются новые реализации, как к примеру гибрид Lua и Lisp - Fennel. И вот скажи мне, стоит в обще учить CL и будет ли он актуален, или он уже сейчас устарел? И почему у CL такая малая аудитория? В чем в обще причина непопулярности Лиспов, ведь он давал все тоже что и Питон но на пару десятилетий раньше и в нулевые должен был выстрелить именно он
>>1184907 (OP)Лисп умер и не нужен. Перволисп был попыткой реализации языка, основанного на нетипизированном лямба исчислении. В этом смысле перволисп и съема были прорывными языками и важной вехой.Но они устарели, сейчас основная тема это типы, статические проверки, доказательство корректности, по сути все динамические языки (руби 3, пистон 3, ерланг с диалайзером, типизированный рэкет) пытаются вкорячить себе систему типов. Потому что очевидно, что если можно статически гарантировать исполнение всех инвариантов и соответствия реализации интерфейсу, то лучше это сделать. Потому лисп не нужен в эпоху OCaml, Scala, Haskell, F*, Idris, Spark etc. Джон Кармак сказал как-то про людей, пишущих на динамических языках, что они соединяют функции, принимающие что угодно, с функциями, возвращающими что угодно, и надеятся, что оно будет работать.Теперь по поводу борщелиспа: это мертворожденное говно, настолько убогое и ненужное, что даже его создатели это признают (http://xahlee.info/comp/Common_Lisp_quotations.html)Это даже не язык, а фреймворк для создания языка, причем хуевый (гугли гигиенические макросы). То есть каждый лиспер изобретает свою (примитивную и забагованную) систему типовы, паттерн матчинг, медоды обработки и сигнализации об ошибках и.т.д. Каждый борщелисп код непохож на другой и отражает глубокий внутренний мир автора, что полный пиздец для продакшна. Попробуй вкатиться в проект, где автор наизобретал макросов для обработки ошибок, продолжений и прочего, приправив это все обскурным синтаксисом.В итоге в продакшне этот язык не взлетел, ибо неподдерживаемое динамическое говно, интузиасты давно ушли в хаскили, академии он никогда не интересен был. Язык по сути много мертвее того же SML.Хочешь обмазаться лиспом, учи имакс лисп, он хотя бы полезен, и редактор ахуенен. А еще обмажься типами, прочитавhttps://softwarefoundations.cis.upenn.edu/
>>1185383>выстрелившим кложуртоп кек
>>1185383>тоже что и ПитонДесятки тысяч библиотек? Пистон это бейсик 21 века, хуевый как язык, но с батарейками и можно быстро нахуярить что-нить рабочее. Лисп не такой.
>>1185393я правильно понимаю, что весь смысл твоего опуса восходит к "главное продакшен и бабло, остальное от дьявола"? Тебя не беспокоят инновации и развитие, а лишь удобное формошлёпство в промышленных масштабахВся прелесть CL и состоят в том, что из него можно собрать что угодно под свои нужды.>это мертворожденное говно, настолько убогое и ненужно... что до сих пор его используют как основу для построения АИИ, МL и Дата Саенс в обще Просвещайся https://academic.oup.com/bib/advance-article/doi/10.1093/bib/bbw130/2769437http://www.mind.ai/ https://lispjobs.wordpress.com/2017/11/22/lisp-engineer-mind-ai-seoul-korea-l-a-usa/Глянь на масштаб проекта и поиск, а точнее количество сотрудников искомых в проект, знающих CL>принимающие что угодно, с функциями, возвращающими что угодно,это и есть основа АИ
>>1185423> http://www.mind.ai/ > Token Generation Event
>>1185393>Теперь по поводу борщелиспа: это мертворожденное говно, настолько убогое и ненужное, что даже его создатели это признают (http://xahlee.info/comp/Common_Lisp_quotations.html)пардон, а с чего это человек возносивший CL в "Побеждая Посредственность" являвшийся Библией для лисперов, автор ANSI Lisp вдруг поливает говном... CL?Я могу поверить лишь в том, что он писал это до выпуска СтандартаКогда CL и являлся хаотичным говном
>>1185423>инновации>динамический алгол со скобками и плохо спроектированной системой макросов из 1984 годаБлять, проиграл на всю хату, даже кису напугал, что ж ты делаешь.>что из него можно собрать что угодно под свои нужды.Как и из любого приличного языка. Важно еще, чтоб другие люди смогли этим пользоваться.>https://academic.oup.com/bib/advance-article/doi/10.1093/bib/bbw130/2769437Да-да, целая одна публикация и три вакансии за весь квартал. Живой язык. Я ж говорю, standard ml живее этого говна. Как там аи, уже запилили за 35 лет?Все ML инженеры и исследователи давно используют питон или F# и не выебываются.
>>1185432>Как и из любого приличного языкаНу го, из стандартизированного питунуса с жесткой вертикалью власти Гвидо, собери мне язык мечты >>1185423чекнул я тут высказывание по ссылкелол, мань, ты выдаёшь желаемое за действительное. Все Выссказывания по твоей ссыли за 2001г и 2003г, полноценный стандарт выкинувший все лишнее и приведший CL к полноценному, удобному диалекту появился лишь в 2012
Назад в будущее.
>>1185434>Ну го, из стандартизированного питунуса с жесткой вертикалью власти Гвидо, собери мне язык мечты приличный ты, вестимо, пропустил не специально, да? Ладно, спишем это на твое расстройство чтения.Руби, смоллток, окамл, хаскель, скала, элексир, да дажн раст просто живут DSL.>диалекту появился лишь в 2012Оба инвалида, что на нем пишут, ликут, че. Ни в индустрии, ни в академии язык не представлен по факту, он мертв.
>>1185439от того что он не отсвечивает восполняя потребности узкого круга людей, из за высокой планки входа - это не значит что он мёртв.Повторяю Технически он прекрасен. CL 2001 и CL 2012 по факту разные языки. До 2012 его можно сказать и не существовало, ибо было овер дохуя стандартов, перегруженного и бесполезного функционала, пока в 2012 наконец не пришли к соглашению и всю лишнюю шелуху под корень не вырубили приведя из множества стандартов к одному единому CLСделали это поздно и не дали раскрутки, ибо уже был питон с планкой входа на уровне дебилов и формошлёпством с овер дохуя библиотек. рыночек
>>1185430Это спекуляции отцов лиспа на тему, почему лисп соснул. Очевидно, что изначальная повестка из worse is better, мол, вы все просто быдло и не оценили наш гениальный язык, неконструктивна, ведь куда как более академичные языки, вроде хаскиля, взлетеле на фоне лиспа.
>>1185441>Технически он прекрасен. >мутабельность во все поля>негигиенические макросы>нет продвинутой статической системы типов>нет внятных стандартных способов обработки ошибокТехнически это динамический алгол с кривыми макросами из 84 года, и любые руби актуальнее и при этом имеют библиотеки на все случаи жизни. А, ну мультиметоды еще есть, для ооп-нутых счастье.
>>1185443>>Технически он прекрасен. >мутабельность во все поля>негигиенические макросы>нет продвинутой статической системы типов>нет внятных стандартных способов обработки ошибокзащита от криворуких долбаёбов. Давай еще на си говна вылей за управление памятью и овер9600 способов выстреливая в пятку выстрелить в сраку с выпилом железа
>>1185444>Давай еще на си говна вылей за управление памятью и овер9600 способов выстреливая в пятку выстрелить в сраку с выпилом железа Си -- это тоже пример хорошего языка? Тогда понятно, лисперы, это просто ребята из криокамеры, мимо которых прошли все 35 лет исследований в области PL.Работать с памятью можно и безопасно. Гугли Spark + ravenclaw, F\ + Low\, да хотя бы ceylon с rust.
>>1185445>F\ + Low\Ебать макабу`F + Low`
>>1185445А что есть хороший язык? Стандарт анально огораживающий криворуких дебилов от выпила железа? Сборщик мусора для ленивых криворуких болванов? Может убогое говно со свалкой библиотек? Или унылый манипулятор сущностями с хайпанутым конвеером фреймворков? Дай мне чёткое определение
>>1185454>А что есть хороший язык? Стандарт анально огораживающий криворуких дебилов от выпила железа? Сборщик мусора для ленивых криворуких болванов? Может убогое говно со свалкой библиотек? Или унылый манипулятор сущностями с хайпанутым конвеером фреймворков? Дай мне чёткое определение Я тебе четыре языка безопасных для низкоуровневого программирования принес, на, читай.https://arxiv.org/pdf/1703.00053.pdfhttp://www.spark-2014.org/uploads/itp_2014_r610.pdfhttp://docs.adacore.com/spark2014-docs/html/lrm/https://docs.adacore.com/spark2014-docs/html/ug/en/source/concurrency.htmlНу раст и цейлон сам нагуглишь.
>>1185441Дай, пожалуйста, какую-нибудь ссылку на стандарт 2012 года, про который ты говоришь, или на список изменений, которые он принёс. Пытался выгуглить, не смог. Не троллю, просто интересно.
>>1185464я от усталости крупно проебался не только с датами. Пересмотренный стандарт 2005г
>>118547094 год там последний стандарт, R2004 это мелкие правки косяков.
>>1185383>И вот скажи мне, стоит в обще учить CL и будет ли он актуален, или он уже сейчас устарел?"Вообще" - не стоит. Судя по твоим вопросам, ты сам не знаешь, что тебе надо ("актуален" или "неактуален" язык может быть только в контексте конкретной задачи), так что повторюсь еще раз: делай лабы читай книжки вместо создания платиновых тредов в зекаче.
>>1185393Оп тут с ЛОРа 10-летней давности, а вот это аниме с ЛОРа пятилетней давности, лол.
>>1185395А некоторые и вовсе из села где-то в Сибири походу капчуют, лол.
>>1185445>Работать с памятью можно и безопасно>не упомянуть cyclone
>>1185483Имеешь ввиду, кложур совсем дохлый?>>1185484Это эксперименталбный язык, на кой его упоминать?
>>1184907 (OP)>почти полное отсутствие каких либо стоящих проектовПроекты есть: как исследовательские, любительские, так и коммерческие. Разумеется, их меньше, чем на мэинстримовых языках, но они есть.>и состоит преимущественно из ОТЦОВЕсли посмотришь, кто пилит библиотеки, то заметишь, что сообщество преимущественно молодое.>смотрящих на тебя как на говно... Ну не, такого даже на бордах нет. Сообщество довольно дружелюбное к новичкам и отвечает даже на самые нубские вопросы, кроме откровенного троллинга.
>>1185485Наоборот.>>1185485>35 лет исследований в области PL.>Это эксперименталбный язык, на кой его упоминать?Алсо,>имплайин всякие эфстары с сейлонами не экспериментальные
>>1185496На фстаре написана часть тлс слоя в фурифоксе, что уже продакшн, а язык-то молодой, да и стоит упоминания.>наоборотУспех из 2,5 инвалидов? Ну то есть на фоне CL это успех, конечно, но в целом язык дохлый.
>>1185027>Даже этот тред показатель... ни одного прошаренного лиспера способного пояснить по теме>>Такой замечательфный язык убитый комьюнити из ленивых пидоров Пытаюсь осиливать Racket.Для моих скромных нужд, что конкретно вызывает боль, так это TYPED racket.А нужна мне типизация потому, что у меня некие расчеты, и для них хорошо бы иметь дополнительные ограничения и проверки, чтобы по 5 раз себе в ногу не стрелять. Ну и скорость само собой.Да и будем честны сами с собой, в 2018 без нормальной системы типов? Это что, JS?Что я подразумеваю под нормальной? Это значит сохраняются все возможности языка.typed racket сходу отрезает добрую половину всех либ.Я уже молчу про usafe, конечно можно с этим как-то работать, но это сраный бейсик получается.Ну и вообще, все как-то недоработанное.IDE ихняя, это какой-то позор. НЕТ ИНТЕЛЛИСЕНСА.Вот представляете, можно в сраный атом, на сраном js, подключить сраный плагин, для сраного GO, и у тебя интелисенс из коробки, а тут - нет.Нет подсветки юзер символов.Смотришь на эту лапшу бесконечную, и грусть тоска съедает.В других лиспах я так понимаю все еще хуже.Впрочем, к сисярпу я уже невернусь.КРЯКАТЬ студию я больше нежелаю, а бесплатных инструментов нет, или нужно пердолится как не в себя.
>>1185513>Пытаюсь осиливать Racket.Нахуя>А нужна мне типизация потомуТем более нахуя? Чем тебя не устроили 666 разнородных языков с продвинутыми системами типов?
>>1185515>НахуяСнова модно тип.>Тем более нахуя? Чем тебя не устроили 666 разнородных языков с продвинутыми системами типов? Их не так много.Добавим к требованию швабоду кросплатформенность и минимальную адекватность(никаких питон и прочих js)C# отпал, нынче все еще хуже чем 3 года назад, monoDevelop сломан под кучу линуксов. Под винду нет его.Rust - слишком системный.Go - возникает чувство что ты серишь в памперсы.Haskell - пикрелетед. Да и отрицание существования побочных эффектов, это как атеизм головного мозга.Что там еще есть чтобы хоть интелисенс был завезен и прочий кодоанализ и дебаг?
>>1185522>C#, питон, Go>продвинутые системы типовМда>Haskell>Да и отрицание существования побочных эффектов, это как атеизм головного мозга.Мда * 2>интелисенсЧто ты подразумеваешь под этим явно маркетинговым термином?
>>1185513>А нужна мне типизация потому, что у меня некие расчетыУж не это ли тебе нужно http://quickdocs.org/unit-formula/ ?
Для совсем уникальных людей осталась технология ФОРТ в которой можно хоть как в хаскелле, а можно сжать всё в немного килобайт с одним стэком на всё и полететь в космос.
>>1185575>можно хоть как в хаскелле>мутабельность>хаскель
>>1185423> lispjobs.wordpress.comДавно так не орал.
Выглядит интересно. Что думаете?Появился буквально только что https://fennel-lang.org/Fennel это язык программирования, который соединяет вместе скорость, простоту и богатство Lua, с гибкостью синтаксиса и макро-системой Lisp. Полная Lua-совместимость: Легкий вызов любой функции Lua из Fennel и наоборот Нулевые издержки: Скомпилированный код должен быть быстрым, самостоятельным и столь же или более эффективным, как написанный вручную код на Lua. Compile-time макросы: Макросы существуют только во время компиляции. Встраиваемость: Fennel как библиотека, также хорош, как и запускаемый.Везде, где вы можете запустить Lua, вы можете запустить Fennel!Пример:(local dirs {:up [0 -1] :down [0 1] :left [-1 0] :right [1 0]})(each [key delta (pairs dirs)](when (love.keyboard.isDown key)(let [[dx dy] delta[px py] playerx (+ px ( dx player.speed dt))y (+ py ( dy player.speed dt))](: world :move player x y))))Anywhere you can run Lua code, you can run Fennel code. video games window managers web servers data bases web browsers microcontrollershttps://github.com/bakpakin/Fennel/blob/master/tutorial.md
>>1185606Если смешать килограмм дерьма и килограмм варенья, то получится два килограмма дерьма.
>>1185610конструктивно. Беглым осмотром я могу с уверенностью сказать что по синтаксису он проще даже чем питонLua, хули, но при этом он достаточно мощен и безопасен. Я не уверен за вес, но если его даже в МК можно использовать
>>1185619> ]})Кложа какая-то.
>>1185625надо короче позже отдельный тред пилить и нести этого зверька на общее обозрение
>>1185526>МдаНу давай свои примеры яп с продвинутой системой типов.>Мда * 2Заворачивание в монады.Ленивость, вот это все.Haskell ведет себя так, как будто результат функции уже вычислен, двигает байтами и рычит.Это все красивая математика, но идиотический бред с практической стороны.>Что ты подразумеваешь под этим явно маркетинговым термином? Я пишу (define forever-ever-never 'мамка)Пишу ниже fo - выскакивает дропдаун менюшкаforfor/vectorforever-ever-never....А еще, любое упоминание forever-ever-never в коде должно быть выделено цветом\шрифтом
>>1185651>выскакивает дропдаун менюшкаА еще редактор должен знать какие имена и типы параметров у функции и выводить их в момент написания имени.Вместе с описанием функции из документации.
>>1185606Выглядит очень ненужно.
>>1185651>Ну давай свои примеры яп с продвинутой системой типов.F*, Idris, Coq, Haskell, OCaml, Scala.>Заворачивание в монады.Монады -- это и есть 1st class эффекты. В этом их суть.Этот как если раньше люди писали goto, а потом им дали функции. Так и тут, раньше ты использовал эффекты неявно как примитив языка, слепленный как левой пятке автора захоелось, тот тут у тебя 1st class эффект как обычная единица языка. Можешь объявлять новые эффекты, компинировать существующие. Например, монада state + монада continuation = монада coroutine.Монады/алгебраические эффекты -- следующий шаг в развитии языков программирования, каким в свое время были функции и функции высшего порядка.http://binaryanalysisplatform.github.io/bap/api/v1.3.0/Monads.Std.html>выскакивает дропдаун менюшкаАвтокомплит есть для всех перечисленных языков для всех популярных редакторов.
>>1184907 (OP)> Last of Us заскриптован на CLКак иронично, когда мейнстримное кинцо заскриптовано на небыдлячьем языке.
>>1185661>Монады/алгебраические эффекты -- следующий шаг в развитии языков программированияЛюбая программа это один большой побочный эффект.Это суть любых вычислений.Следующий шаг блин.
>>1185682>Любая программа это один большой побочный эффект.Нет. Любая программа это последовательность эффектов, то, что в теории языков называется small-step или operational semantics.Вот один шаг этой семантики -- это тот самый bind монадки, один шаг вычислений. Разница лишь в том, что в языках с монадками этот шаг сам яляется первоклассным объектом, который можно гененировать, комбинировать и.т.д. Ну и сами эффекты не объявлены на уровне языка, а объявляются на уровне либ, комбинируются из других эффектов. Плюс можно очень дешево получить ко всему WP и дешевую формальную верификацию как в F*, тогда как в императивном языке пришлось бы городить сторонний статический анализатор с поддержкой hoare logic
>>1185498>да и стоит упоминания.Ну так и сиклон стоит упоминания, классика же.>Успех из 2,5 инвалидов? Так ты тоже из села в Сибири капчуешь? Кложа(скрипт) сейчас - это что-то на уровне руби времен рассвета его былой славы. Если волмарт - инвалиды (а эфстар - ПРОДАКШН язык, лол), то все понятно.
>>1185513>в 2018 без нормальной системы типовОценил иронию, лол.>typed racket сходу отрезает добрую половину всех либ.false>IDE ихняя, это какой-то позор. НЕТ ИНТЕЛЛИСЕНСА.Ну поставь имакс. У них отличная иде для вкатывальщиков, "интеллисенс" там и не нужен.
>>1185606В качестве более няшной луа для лов2д - сойдет, годно.
>>1185661Лол, ну точно, ЛОР как он есть. Очередной первокурсник с аниме и типами головного мозга.
>>1185698>не нужен.Ясно.>falseА ну ка, for/sum попробуй мне сделать для флонума.Или конструктор для структуры
>>1185713>>не нужен.Ээ, ты с кем разговариваешь? У меня в посте такого нет.>for/sum попробуй мне сделать для флонумаtyped racket тут при чем?
>>1185722>typed racket тут при чем?Попробуй использовать for/sum в нем.
>>1185628Зачем, отнеси в лиспотред.
>>1185726> (for/sum : Number ([i '(1 2 3 4 5)]) i)- : Number15Попробовал, дальше чо?
>>1185739но ведь это скорее Луа, чем лисп
>>1185742>Попробовал, дальше чо?Вот так пробуй>(for/sum : Flonum ([i '(1.0 2.0 3.0 4.0 5.0)]) i)
>>1185749Блядь, перечитай >>1185722-пост. Ты ставишь неправильную аннотацию, тебе компилятор говорит, что выведенный тип не совпадает с указанным, и из этого ты как-то делаешь вывод о том, что "полбиблиотеки отваливается". Просто пиздец, еще бы String туда поставил и жаловался, что не работает, долбоеб сказочный.> (for/sum : Number ([i '(1.0 2.0 3.0 4.0 5.0)]) i)- : Number15.0https://docs.racket-lang.org/reference/flonums.html
>>1185753Подскажи ка, как мне for\sum завести для in-flvector.Покажи правильную аннотацию.
>>1185757> v- : FlVector(flvector 1.0 2.0 3.0)> (for/sum : Number ([i : Number (in-flvector v)]) i)- : Number6.0Теперь отъебись от меня и читай документацию сам.
Хотя на i аннотация и не нужна, он ее сам выводит. Ну да и похуй.
Так все же, столько дерьма вылили на CLОдин говорит - не учи, мёртвое дерьмо и в обще мне не нра, учи только продакшен языки. Другой говорит - язык жив и будет жить, базис заложен огромный, комьюнити молодое, язык развиваетсяИ кому верить? Мне в первую очередь нужен интересный язык для кустарных увесилений, но при этом мощный, актуальный и не лишенный практического применения для макакинга хватает питуна, а точнее ДЖАНГОООО Подсобите И вопросМетапрограммирование заинтересовало в своей концепции. Оно живо? Актуально? И мне представляется бударажущей воображение сама идея "программа порождающая программу", так ли это на самом делеибо макросы в питоне, это извращениеТолько если можно, максимально беспристрастно, чистая конкретика
>>1185759Но я хочу флонум суммировать а не NumberВ чем смысл типов если ты не можешь указывать те типы которые тебе нужны?В твоем примере разве не будет дополнительных рантайм проверок?Что ты такой агрессивный?
>>1185779Расклад таков. Если хочешь перепробовать в жизни много удовольствий и рзвлечений, хочешь любимую тянку и материальную свободу - выбирай JavaScript с реактом. Если хочешь быть элитарием ценой нищебродства и ноулайферства, выбирай лисп или ассемблеры, kernel mode, реверсинг, дроверы и vx-технологии.
>>1185779> Мне в первую очередь нужен интересный язык для кустарных увесилений, но при этом мощный, актуальный и не лишенный практического Racket же.Есть батарейки, можно писать сайты, можно грабить корованы.>Метапрограммирование заинтересовало в своей концепции. Оно живо? Актуально? И мне представляется бударажущей воображение сама идея "программа порождающая программу", так ли это на самом делеибо макросы в питоне, это извращение1. Имеет интерес в очень узких областях.В массе используется для обкостыливания убогих недоязыков, вроде JS или Си2. Все современные языки имеют в своем арсенале широкие средства для метапрограммирования.Просто эти средства выглядят сильно по разному и\или имеют разные области применения.>мне представляется бударажущей воображение сама идеяНет в этом ничего волшебного.Оче практические вещи.Задайся вопросом, чем функция порождающая другую функцию в соответствии с переданными параметрами отличается от конструктора класса в С++.
Но вообще, чтобы быть элитарием, необязательно во всем этом разбираться. Достаточно просто сидеть на дооме: http://dooma.ru/А если начнешь там постить, твоя илитарность взлетит до небес. Разрабы будут течь, а эйчары бояться.
Каждый язык используется для чего-то. Паскаль - для обучения императивному программированию, а лисп - для обучения функциональщине использовался 30 лет назад и сейчас лежит на свалке. Ну, камон, ребята. Скобочки и инфиксные функции вкупе с нулевым стандартом и костылями на каждом шагу в хуй не уперлись. Мне вот надо написать себе небольшой хттп сервер. Я полезу в лисп? Нихуя, я на ноде за пару минут нахуярю и в прод пущу. Мне нужно нарисовать формочку для моей рунтайм приложухе. Я полезу искать лисп реализации того же кт, которых скорее всего и нет? Нет, я спокойно нахуярю в том же шарпе красивые гуи окна и всё.И так во всем. Лисп не нужен.И да, ничего сложного, кроме поддержке, в лямбда дерьме нет.
>>1185809>Мне нужно нарисовать формочку для моей рунтайм приложухе. Я полезу искать лисп реализации того же кт, которых скорее всего и нет?Ты че, наркоман?https://docs.racket-lang.org/gui/index.html
>>1185809>Я полезу в лисп? Нихуя, я на ноде за пару минут нахуярю и в прод пущу. >я на ноде за пару минут>на ноде
>>1185801Пожалуй попробую сидеть на двух стульяхвсе равно я тнн нофапофон сыч с кучей времени хотя второй вариант меня больше привлекает >>1185803нормальной литературы нет, доки не информативные, комьюнити какое то странное и довольно небольшое, либ мало. Напоминает D>от конструктора класса в С++Я в плюсах мало разбираюсь, но как мне помнится там ебля с заранее именованием класса и конструтора. К тому же метапрограммирование имеют куда более широкие возможности в алгоритмах генератора >1. Имеет интерес в очень узких областях.типа ML и ИИ?Попробую зависнуть в CL, он мне все же как то ближе, гляну еще Хаскел и Скалу интереса ради, но чет чистый матан и функциональщина меня не располагает и понятие монад немного кипятит мозг.
>>1185819>но чет чистый матан и функциональщина меня не располагаетчистая спарка матана и функциональщины fixа то не поймете
>небольшой хттп сервер>нахуярю>на нодеБлять. Убейся.
>>1185805>http://dooma.ru/мёртв как пару лет вроде гебняа на деле просто скопытился выпилила админ состав, а хост просто проплачен на n срок.
>>1185805>>1185831> http://dooma.ru/Это что вообще?
>>1185833Что-то типа двача от шизофреника-вирмейкера.
>>1185819>доки не информативныеДа вроде неплохие доки.>комьюнити какое то странноеТы точно понимаешь что означает Lisp Haskell .. комьюнити?Попробуй rust.
>>1185833предок ебаного.ит соревновавшийся в анонимных высерах шизофреников с бложиками жжшечками. По факту обиталище анонимуса еще до появления анонимуса и раскрутки дващиков Короче либрариум для плебса
>>1185799>Но я хочу флонум суммировать а не NumberА String ты суммировать не хочешь? Ртфм.
>>1185803>функция порождающая другую функцию>метапрограммирование))
>>1185809 - пост долбоеба-первокурсника из мухосранской шараги. Платина за платиной.
>>1185809>я на ноде за пару минут нахуярю и в прод пущу. Да ты же просто говноед.
>>1185779>Мне в первую очередь нужен интересный язык для кустарных увесилений, но при этом мощный, актуальный и не лишенный практического применения для макакинга хватает питуна, а точнее ДЖАНГОООО Clojure, Hy-lang
>>1185857>>1185877Бомбажом тупорылых анскилов удовлетворен.Пока вы пердолитесь в своих говно диалектах в блокнотиках или, прости Господи, в емаксах и надрачиваете по кругу на лямбы и категории. Я делаю востребованный продукт в божественной студии (шарп, нода) и не занимаюсь унылым онанизмом на "умные" слова.Что толку от вашего машин ленинга, если даже иде для говнолиспа не изобрели за 30-то лет.Вот и весь дата саенц и мл. Позорище, ебаное, а не комьюнити.Даже пхп черви намного более продуктивны чем лисп комьюнити-гной, комьюнити-пидор.
>>1185880>вебщит кому-то о чём-то говорит
>>1185855Ты наркоман совсем?1. В суммировании строк нет ничего сверхъестественного.2. Я хочу блядь числа с плавающей точкой суммировать.3. Я хочу суммировать целые положительный числа от 0 до 255.Какой смысл блядь в типах, если вместо типов говно уровня object?Ты про дженерики хоть слышал, или сектант уровня GO?
>>1185880>Я делаю востребованный продукт в божественной студии (шарп, нода) и не занимаюсь унылым онанизмом на "умные" слова.продакшен шлюха 300к\н.секунду порвалась мань, не все сводится к надрачиванию ради надрачивания. Ты не программист, ты ебаная макака-формошлёп, и не принёс в сферу нечего нового, а лишь сидишь и паразитируешь на её опухолевой части
Ну хуй знает. Я раньше таким интересовался, но потом понял что это все попросту говно без задач. Вот нахуя дрочить на условно инструмент, когда можно делать продукт? Серьезно, хочешь пердолиться - бери плюсы, проще и быстрей - всякие пиздоны и яваскрипты тебе в помощь. А смысл в ваших лиспах что, костылять типы? Дрочить на умные слова? Ну ок, а программы за вас кто писать будет?
>>1185896this => >>1184946
>>1185801>выбирай JavaScript с реактомФу, не модно уже, прошлый век
>>1185393>Джон Кармак сказал как-то про людей, пишущих на динамических языках, что они соединяют функции, принимающие что угодно, с функциями, возвращающими что угодно, и надеятся, что оно будет работать.Лол. А сам пишет на языке со слабой типизацией, с возможностью прострелить себе ногу указателем.
>>1185690> который можно гененировать, комбинировать и.т.дЭто невозможно сделать обобщенным способом, как в случае аппликативного функтора, а значит каждый раз свой велосипед для каждой монады. Ну и нахуй это надо?
>>1185880Нуфсэйд. Формошлепствуй дальше за миску баланды.
>>11858881. Если у тебя органическое поражение мозга, то да. Здоровые же люди строки конкатенируют.2. Тебе уже несколько раз показали, как это сделать. Ты либо тупой, либо троллишь.3. Тебе уже несколько раз показали, как это сделать. Ты либо тупой, либо троллишь.>дженерикиСлово-детектор необразованного обрыгана, кстати. К тому же не имеет отношения к обсуждаемой теме, что вдвойне кек.
>>1185896>в ваших лиспах что, костылять типы?Просто парад кретинов в этом итт треде. Божественно.
>>1185938Ты иди давай компоненты на реакте запиливай, слаботипизированный парашник.
>>1185939При чем тут жс?
>>1185938Я вот зашел и вообще не понимаю, что за хуйня тут происходит. Откуда натекло это быдло, которое даже представления не имеет о предмете обсуждения, но лезет со своим важным мнением?
>>1185937>1. Если у тебя органическое поражение мозга, то да. Здоровые же люди строки конкатенируют.Ты никогда перегруженные + не видел?>Слово-детектор необразованного обрыгана, кстати. К тому же не имеет отношения к обсуждаемой теме, что вдвойне кек.Ты ужасно агрессивный, и все время оскорбляешь собеседника.Так себя образованные люди не ведут.
>>1185942Платиновый тред - платиновые кретины.
>>1185779>И кому верить? А своя голова тебе начто? >Метапрограммирование заинтересовало в своей концепции. >И мне представляется бударажущей воображение сама идея "программа порождающая программу", так ли это на самом делеhttp://swizard.info/articles/solitaire/article.htmlПочитай эту статью, на простом примере показан подход решения задач с помощью метапрограммирования.
>>1185954Оно выглядит невероятно, настолько невероятно, что не верится. В чём подвох?
>>1185980>В чём подвох? Нужен мозг.То есть 90% дегенератов уровня /зк отпадает.
>>1185980> В чём подвох? Это не метапрограммирование, а embedded dsl.
>>1185944>Ты никогда перегруженные + не видел?Семантика для разных типов данных разная. В здравом уме строки никто не складывает.>Это не метапрограммирование, а embedded dsl. Дак edsl создается средствами метапрограммирования. Собственно, это и есть правильное использование МП как такового.
>>1185942ну так давай своё особое мнение, некретин
>>1185954>http://swizard.info/articles/solitaire/article.htmlзачем использовать полудохлый Common Lisp, когда в то же метапрограммирование может Elixir, Crystal и тот же Питон, да даже .Net нахуа? чисто понасиловать труп
>>1186374>зачем использовать полудохлый Elixir, Crystal и тот же Питон, да даже .Net, когда в то же метапрограммирование может сишка с ее препроцессором?В следующийй раз попробуй тоньше, с аргументами и примерами кода.
>>1186519https://wunsh.ru/docs/meta/macroshttps://elixir-lang.org/getting-started/meta/macros.htmlЯ человек сторонний к макросам CL так же как и к Elixir и могу судить непредвзято. Elixir куда удачная реализация метапрограммирования, чем CL
>>1186526Лень вникать. Она отличается от макросистемы руби?
>>1186528Elixir - это лучший Руби, на Erlang VM. К тому же он имеет интеграцию с Руби, так что думаю если и отличается, то в лучшую сторону. Тем более его создал создатель RoR
>>1185934>невозможноЧто невозможно? Для комбинации монад есть монад трансформеры. Для алгебраических эффектов и языком с выводом монад (F*) и они не нужны.
>>1186526>Elixir куда удачная реализация метапрограммирования, чем CL>{:if, [], [{:!, [], [true]}, [do: {{:., [], [{:__aliases__, [], [:IO]}, :puts]}, [], ["this should never be printed"]}]]}Даааа, обрабатывать такое должно быть очень занимательным занятием.По-моему, отличная демонстрация того, что в не гомоиконных языках хороших макросов не бывает.
>>1186526>Я человек сторонний к макросам CL так же как и к Elixir и могу судить непредвзято.Перевожу с русского на русский:>я нихуя не разбираюсь ни в том, ни в другом, а значит я прав
>>1186560>я нихуя не разбираюсь ни в том, ни в другом, а значит я прав В РОТ МНЕ НОГИ! Это уличная магия! Как ты узнал? Как ты Узнал?!
>>1186531>К тому же он имеет интеграцию с РубиЧего, блять?>его создал создатель RoRОй, все, иди нахуй.
>>1186714>Ой, все, иди нахуй. Нахуй проходишь ты>Создан Жозе Валимом (José Valim), ранее являвшимся одним из основных разработчиков фреймворка Ruby on Rails и сооснователем компании PlataformateК тому же Руби можно вызывать из Elixir $ mix new elixir_ruby_app$ cd elixir_ruby_appТы обосрался Так и скажи мне, школиё, хули ты ко мне приебался и в чем твоё батхёрт?
>>1186727мамку ебал
>>1186758Туда откуда вылез? инцест это плохо
>>1186763Репорт.
>>1186727В том, что руби с эликсиром объединяет только наличие end и больше ничего.В том, что Валим был кор контрибьютором, но никак не создателем. Создатель это dhh.В том, что mix new создает проект на эликсире, и причем тут руби я вообще не понимаю.
>>1186805>В том, что руби с эликсиром объединяет только наличие end и больше ничего.а так же подобный синтаксисскопипащенный Phoenix с RoRи опять же возможность вызова Руби из ЭлексирА так да, нечего лолdefmodule Benchmarker.Controllers.Pages do use Phoenix.Controller def index(conn, %{"title" => title}) do render conn, "index", title: title, members: [ %{name: "Chris McCord"}, %{name: "Matt Sears"}, %{name: "David Stump"}, %{name: "Ricardo Thompson"} ] endendclass PagesController < ApplicationController def index @title = params[:title] @members = [ {name: "Chris McCord"}, {name: "Matt Sears"}, {name: "David Stump"}, {name: "Ricardo Thompson"} ] render "index" endend
>>1186678Да дебилов прост за версту видно.
>>1186938>скопипащенный Phoenix с RoRВсе MVC фреймворки одинаковы.>и опять же возможность вызова Руби из ЭлексирПогугли что такое ffi.
>>1186990У меня не предвзятый взгляд, а ты утрируешь
>>1187353>не предвзятыйИ правда дебил.
>>1187369Я литвин, мене можно а вот ты - долбаёб, эт неизлечимо
>>1187501>Я литвинЗачем?
>>1187509шоб було
>>1186678>блейнОго какой ты старый.
>>1186047>Семантика для разных типов данных разная. В здравом уме строки никто не складывает.Я зарекся отвечать сумасшедшим. Но сегодня у меня хорошее настроение.ТАК ДЕЛАЕТ ВСЕ ГРЕБАНОЕ АЙТИ.99.99% всех программистов либо пользуется перегруженным плюсом, либо имеет его в своем рабочем инструменте.Тут ты конечно можешь заявить, что это все вокруг сумасшедшие, один ты весь в белом.
>>1197615>ТАК ДЕЛАЕТ ВСЕ ГРЕБАНОЕ АЙТИ.Так делают в языках для макак, чтоб те не перетрудили мозг (жаба, пыхоплеяда). Сложение можно испльзовать для сложения матриц и других типов, но сложение коммутативно по умолчанию, потому плюс целесообразно использовать для коммутативного сложения.А теперь ответь мне, макакер, конкатенация строк коммутативна?
>>1197629>конкатенация строк коммутативна?Я мимопроходил и мне это напоминает фрагмент пасты про Эйнштейна. "Профессор, холод существует?".
>>1197629>А теперь ответь мне, макакер, конкатенация строк коммутативна? Просто иди нахуй, питуз. Твое ФП и алгебра в продакшене нахуй никому не усралось.
>>1197629Хуле ты тут про коммутативность вообще воняешь, питуз дырявый. Если любишь математику, иди моделировать погодные явления, изучать какие-нибудь динамические системы или обмажься криптографией. Только вот ты тупой для этого, поэтому ты сидишь на дваче, где все слабоумные, в /p с фулстэк энтерпрайзобоярами и веб-макаками и пытаешься доказать всем, что они неправы. Потому что ты сам чухан-недоучка, не нашедший себе места в мире.
>>1197629>все вокруг сумасшедшие, один я весь в беломОкей парень, полегче. Не переживай ты так.Давай лучше посмотрим на проблему с точки зрения математики в целом, а не конкретного мат аппарата сложения целых чисел.А с точки зрения математики, символ может означить все что угодно, если это нам удобно, и позволяет производить полезные вычисления.Так можно возразить, что делить матрицы невозможно, особливо разряженные, поэтому лучше этим вообще не заниматься, а люди которые делают всякие сингулярные разложения и прочий PCA - психи и идиоты (макаки как ты выражаешься) которые ничего в жизни не понимают.Из>но сложение коммутативно по умолчаниюНикак не следует>плюс целесообразно использовать для коммутативного сложенияТо, что где-то в каком-то мат аппарате что-то там по умолчанию, мало что значит для других мат аппаратов, в которых по умолчанию может быть совсем другое.В 3тьем классе школы и на ноль делить нельзя, и что теперь?Сам же тут распинаешься об абсолютной ценности DSL в лиспе. И тут же возражаешь что дескать нельзя удобный DSL делать, а нужно делать исключительно в рамках школьной алгебры.Ну и зачем он такой сдался?Think about it.
>>1197629>сложение коммутативно по умолчаниюВнезапно нет, сложение некоммуникативно, например, для множества групп, колец и полей. Например, для перестановочных групп с порядком больше 4.
>>1197650>То, что где-то в каком-то мат аппарате что-то там по умолчаниюПлюс -- это и есть арифметический оператор. Это все равно что взять оператор интеграла, определить его как функцию print и говорить, мол, похуй, как оно в математике.Само собой, никто не мешает опеределить какие годно операторы для чего угодно, это просто путает людей. Сложение коммутативно, конкатенация строк -- нет, потому и нецелесообразно использовать один и тот же оператор.Само собой для типичного пыхокодера это не имеет значения, ибо тот обо всем этом понятия не имеет.>В 3тьем классе школы и на ноль делить нельзя, и что теперь?На ноль все еще делить нельзя.>Сам же тут распинаешься об абсолютной ценности DSL в лиспеЯ вообще считаю, что лисп -- реликт и не нужен.
>>1197663>перестановочных группЭто некоммутативные алгебры, там и операции сложения нет.
>>1197671Операция сложения для групп переопределена и внезапно отличается от арифметической операции сложения.И запись a+b для какой-нибудь S4 не вызывает паники и приступа вахтерства, ведь это запись в стиле additive notation
>>1197667>На ноль все еще делить нельзя.Ну охуеть теперь.Ладно, свой предел общения с сумасшедшими я на сегодня исчерпал.Сайонора.
>>1197674Во всех некоммутативных группах, что я видел, использовались свои операторы (например, поворота).
>>1197635>>1197638Проиграл с разрыва этого умственно отсталого, лол.мимо
>>1197721Так йиво, этава быдло! Дрочу хуец на категорию колец!
>>1184907 (OP)>какой смысл мне его изучать? Размять мозги. Хорошо размятые мозги залог успеха.
>>1197629>сложение коммутативно по умолчаниюНет.
>>1198032https://en.wikipedia.org/wiki/Addition>Addition has several important properties. It is commutative
>>1198081Еще бы школьный учебник сюда принес.
>>1198081>The general theory of abstract algebra allows an "addition" operation to be any associative and commutative operation on a setХм. Был неправ. Выходит, что конкатенация строк не сложение, а умножение будет называться.
>>1198146>A group is an object with a single operation called “multiplication”. In case that operation is commutatitive that operation may be called “addition”. And the group is called as Abel group in that case.Да. Век живи, век учись.
>>1198103Не позорился бы уж.>>1198147:3
Блядь, какие же дегенераты ИТТ, кроме пары анонов с монадами. Пиздец, /зк/ еще хуже ЛОРа.>>1197629У тебя даже IEEE 754 не гарантирует коммутативности, тупо потому что NaN != NaN.
>>1198302
>>1197615Ебаниська. PHP-макаки пользуются, внезапно, точкой, ФП-бляди, как правило, двойным плюсом, а гуру экселя функцией CONCATENATE(). Где теперь твои 99% с перегруженным плюслм?
>>1198279Довен.
>>1198351>Где теперь твои 99% с перегруженным плюслм? Там где нет PHP Exel и Haskell
>>1198367Привет, а я Алексей.
>>1198370>нет HaskellНо ведь это не программисты, а кодеришки.
>>1198394Ржака!
>>1198302>У тебя даже IEEE 754 не гарантирует коммутативности, тупо потому что NaN != NaN. Все правильно, float -- вообще не числа, это имитация, приближение чисел, не обладающее свойствами числел. Там еще много подводных камней есть. Слава богу в окамле для них используются операторы +. *. и.т.д., не забываю.https://blog.janestreet.com/proofs-and-refutations-using-z3/
>>1198438Это ты с друзьями?
>>1198890Знатно траллируешь!Просто омг лалака!)))
>>1198302Но ведь NaN - это Not a Number. А обсуждаемые операции определены на множестве чисел.
>>1198438>>1198916Лиспер as is.
>>1197615> 99.99% всех программистовПорочная практика, приносящая с собой проблемы.В D для конкатенации рэнжей сделали отдельный оператор "~".
>>1198945>В D для конкатенации рэнжей сделали отдельный оператор "~"Надо еще античную латиницу побольше использовать!В принципе доставляет.И еще можно из русского алфавита натаскать буквец.>>1198940На самом деле. Школьные тралли лиспом не занимаются.Элементарно не модно. И элитность свою объяснить сложно.Если глянуть конференции Ракета, то там народ в возрасте, и, да, выдающийся.Трансвеститы, дедки на Фреди Крюгера смахивающие, и прочее.Выглядят необычно, и вызывают симпатию.У нас же тут завелся или Хаскелист, или каникулы, или все вместе.
Какой компилятор качать? Я, блять, читаю книгу, которую сказали в факе, ввожу define и мне пишет, что не знает такой команды.
>>1198989>Какой компилятор качать? Я, блять, читаю книгу, которую сказали в факе, ввожу define и мне пишет, что не знает такой команды. Racket
>>1198989MIT Scheme если книга - SICP
>>1198940Не, это просто какой-то обиженный.>>1198970>У нас же тут завелся или Хаскелист, или каникулы, или все вместе. Или просто ньюфаготред опять протекает.>>1198989В sicp-о-треде же есть шапка со всеми ссылками, посмотри самые первые посты там.
>>1199080>Или просто ньюфаготред опять протекаетВообще, походу местный сумасшедший.Его по саже легко заметить, и характерным "содержательным" постам.Его разметало не только пор ЗК но и по всему двачу.Может, конечно, бот.
>>1199177Не вижу сажи в постах протекающего щитпостера.
>>1199214>Не вижу сажи в постах протекающего щитпостера. >>1198890Например.А так то по доске пройтись и можно насобирать прилично.
>>1199219Но ведь шитпостер - это ты, >>1198916 >>1198438
>>1199219А, так это как раз у залетного из ньюфаготреда подгорело. Еще и ботов каких-то детектит, вообще охуеть.
>>1198970>Надо еще античную латиницу побольше использовать!Конструктивно. Тебе поясняют почему конкатенация строк, тобишь, блять, бинарная ассоциативная операция, подобная умножению, не является суммированием. Соответственно надо хотя бы перегружать не +, а *. А ты хуйню какую-то городишь про флоаты и античную латиницу.Стыдно быть таким лиспером и не знать чуть-чуть общей алгебры.
>>1199541>Соответственно надо хотя бы перегружать не +, а *. А ты хуйню какую-то городишь про флоаты и античную латиницу.>>Стыдно быть таким лиспером и не знать чуть-чуть общей алгебры. А что тогда использовать для совмещения строк посимвольно?
>>1199541Плюс перегружают потому, что это логично и практично.С точки зрения здравого смысла, а не курса общей алгебры.
>>1199599Любой, удовлетворяющий тебя. Но я бы на твоём месте не использовал + и *, так как эта операция не ассоциативная.
>>1199607Коммутативный оператор для некоммутативной операции. Где тут логика и здравый смысл?
>>1199607Так-то нифига это не логично, выше уже объяснили почему. Алсо, это нифига не практично, потому как вывод типов ломает. Или у тебя строки имплементируют тайпкласс Num? Ну заебись, здравый смысл во все поля.Вообще не понимаю таких людей, которым все уже на пальцах объяснили, а они уперлись и все равно продолжают стоять на своем.Такие же люди пишут на го и голосуют за Путина, например.>>1199626Схуяль она не ассоциативная? Ты не заговаривайся, следи за собой.>>1199599Используют точку (по аналогии с композицией функций, видимо) и ++, если из символов. Но использовать символы для конкатенации строк - моветон, имхо. Достаточно функции String.concat, например. Ну или если у тебя достаточно абстрактная стдлиб, то будет тайпкласс Monoid с операцией совмещения любых двух штук реализующего его типа. В х-ле эта операция называется "mappend" (но имхо это не очень удачное название).Алсо, в кложе эта проблема очень элегантно решена: там есть одна-единственная функция str, которая при вызове с одним аргументом преобразует его в строку, а при вызове с 2+ аргументами - преобразует каждый из них в строку и конкатенирует результаты. Таким образом, заодно практически убирается нужда в дополнительных функциях типа format (ака printf в строку):(str "x is: " 42) ;=> "x is 42"
>>1199716>Схуяль она не ассоциативная? Ты не заговаривайся, следи за собой.(aa • bb) • cc = abab • cc = acbcabaa • (bb • cc) = aa • bcbc = abacbcЕсли я правильно тебя понял.
>>1199695>Коммутативный оператор для некоммутативной операции.Выяснили уже что сложение не коммутативно.В общей теории алгебры.А вне ее?>Где тут логика и здравый смысл?Сложение - совмещение, берешь одно яблоко, добавляешь к нему второе.Берешь слово, дописываешь к нему другое.Берешь воду, вливаешь в нее кислоту.кислота плюс вода = бида2Al + 3CuCl2 = 2AlCl3 + 3CuНИЕТ НИЗЯ ТАК ХИМИКИ ПРИКРАТИТЕ МЫ НА ВАС С СУД ПОДАДИМ ЭТО НИ КАК В АЛГЕБРЕ!>>1199716>Так-то нифига это не логично, выше уже объяснили почему.Да нет.Ни одного вменяемого довода кроме - В АЛГИБРЕ НИТАК МАРЬЯ ИВАНОВНА ЗАПРИЩАЕТКакая разница как там что в алгебре?> Алсо, это нифига не практично, потому как вывод типов ломает. Или у тебя строки имплементируют тайпкласс Num? Ну заебись, здравый смысл во все поля.Перегрузка операций ломает вывод типов?У тебя точно справки из дурдома нет?
>>1199776>НИЕТ НИЗЯ ТАК ХИМИКИ ПРИКРАТИТЕТы совсем дебил? Кислота + вода = вода + кислота. Ты же, блядь, даже не понимаешь, что такое коммутативность, у тебя абстрактное мышление отсутствует напрочь. Как ты вообще самостоятельно в интернет выходишь?>Перегрузка операций ломает вывод типов?Остальным анонам, которые это читают - нувыпонели, какой уровень у этого дебила. Предлагаю завязывать кормить этого слабоумного.
>>1199733Гхм, я думал тот анон про конкатенацию спрашивал - вряд ли кому-то придет в голову обозначать описанную тобой функцию каким-то значком вместо нормального имени. Впрочем, сформулировал он и вправду как-то странно, так что ждем-с пояснений от того анона.
>>1199776>Сложение - совмещение, Ага, а еще лист бумаги можно пополам сложить.>2Al + 3CuCl2 = 2AlCl3 + 3Cu1 + 3 = 2 + 2 - а тут даже математики обосрались? Ты хоть понимаешь, что твой пример вообще не в кассу?>Перегрузка операций ломает вывод типов?Суть перегрузки - специальный полиморфизм. То есть обобщение операции для разных объектов. Если некоторые свойства операции теряются для какого-то объекта, то это очень хуёвое обобщение. Поведение становится не очевидным, код не реюзабельным, а абстракции текут. Профита от такой перегрузки нет, кроме радости от "хэй, смотрите, теперь строки тоже можно плюсом складывать".
>>1199823>>2Al + 3CuCl2 = 2AlCl3 + 3Cu>1 + 3 = 2 + 2 - а тут даже математики обосрались? Ты хоть понимаешь, что твой пример вообще не в кассу?2AlCl3 + 3Cu = ?Пример как раз очень в тему.А вот ты показываешь крайний уровень дебилизма считая количество атомов.Оно не меняется, хим превращения не об изменении количества атомов.У тебя какая оценка по химии в школе то была? Или вы еще не проходили?>Суть перегрузки - специальный полиморфизм. То есть обобщение операции для разных объектов.В чем его специальность?Чеммашина.ехатьпринципиально отличается от машина.+ ?>Если некоторые свойства операции теряются для какого-то объекта, то это очень хуёвое обобщение.Что под этим подразумеваешь для меня загадка. Возможно и для тебя.>Поведение становится не очевидным, код не реюзабельным, а абстракции текут.Не видел, ни одного человека, у которого бы "фикус " + "пикус" = "фикус пикус" вызывало бы хоть какую-то, самую минимальную проблему понимания.Даже 4хлетние дети понимают это сразу и без проблем.Это первое.2. Поведение достаточно сложных абстракций не бывает очевидным.Для тебя очевидно какие операции процессор выполняет при вычислении даже простой функции?Мир должен быть простым и понятным, ага, а если непонятно, то это все зло и неправильно.>>1199797>Ты совсем дебил? Кислота + вода = вода + кислота. Ты же, блядь, даже не понимаешь, что такое коммутативностьПорядок смешивания веществ имеет значение для конечного результата.>Как ты вообще самостоятельно в интернет выходишь?Да, меня то-же этот вопрос терзает.Ты в курсе, что в JS + перегружен для строк?Как насчет прекратить использовать злые браузеры непонимающие красоты школьной алгебры?Еще раз ПЛЕВАТЬ, что там в алгебре.Людям ПЛЕВАТЬ.Мат аппараты используют чтобы было удобно считать.Яп используют чтобы было удобно писать.Не теоретикам лямбда исчеслений и теорий типов, а людям сотен тысяч других компетенций.
Во вы аутисты, лучше бы код писали.
>>1200090>А вот ты показываешь крайний уровень дебилизма считая количество атомов.Твой пример не показывает что в уравнениях реакций нарушаются свойства операции сложения, в частности коммутативность. Я тебе привел более простой пример, чтобы ты сам попробовал догадаться где именно ты обосрался. Но ты не догадался и усмотрел какие-то атомы.>В чем его специальность?"Специальный" - это один из типов полиморфизма, о чем, ты конечно же, не знаешь. Открой, наконец, википедию и перестань позорить лисперов.>Для тебя очевидно какие операции процессор выполняет при вычислении даже простой функции?Дурачок, чтоль? Для этого и существуют уровни абстракций. Но с твоим подходом они будут неизбежно течь, и таки придется добраться до уровня машкода, чтобы понять что ты там наговнокодил.>Поведение достаточно сложных абстракций не бывает очевидным.Для хорошей абстракции достаточно описать её интерфейс. Стандартные интерфейсы, типа математических операций, трогать и менять - моветон.>"фикус " + "пикус" = "фикус пикус"А почему не как на пикрил? Потому что 4-х летние дети не понимают?>Порядок смешивания веществ имеет значение для конечного результата.Этого уравнения реакций, кстати, не описывают. Напишешь nX + mY, или mY + nX - разницы не будет.
>>1200090В левой части же похуй в каком порядке идёт.
>>1199776>2Al + 3CuCl2 = 2AlCl3 + 3Cu>НИЕТ НИЗЯ ТАК ХИМИКИ ПРИКРАТИТЕ МЫ НА ВАС С СУД ПОДАДИМ ЭТО НИ КАК В АЛГЕБРЕ!Вот тебе и доигрались с перегрузкой операторов до путаницы в голове.Там ->, что явно намекает на однонаправленность преобразования, а не =
>>1200410>Там ->, что явно намекает на однонаправленность преобразования, а не =Вот!Так не в плюсе дело!Нужно знак равенства просто менять на правильный!Согласно третьей теореме ватника гомоиконность сохранит свойство конкатенации в специальном случае полиморфных дженериков!И все заебись. Выведение типов не ломается, и студенты с кафедры программной инженерии довольны.
>>1184907 (OP)>Мне тут расписали что CL(SBCL) да и лиспы в целом - это язык будущегоЛиспопетушки - контрамоты. Они движутся во времени назад. Как было на самом деле: протоцепепе - ЛИСП 50-80 гг. C++ 80-90 гг. Haskell - новая версия цепепе. 90-00 гг. С точки зрения лиспопетушка сначала был Хаскель, в следующей версии он деградировал до цепепе, а в лиспопетушином будущем цепепе деградирует до лиспа.А я все ломал голову, как человек может так ненавидеть будущее, так привязаться к прошлому, что пишет на лиспе? Но для лиспопетушка-контрамота лисп - это и есть будущее. А дальше ВВ2, индустриальная контрреволюция, религиозные войны, рабовладельческий строй, отрастание хвостов и подъем на деревья. Скай из зе лимит!
>>1201070Этот Coq порвался, несите нового.
>>1201070То, что ты принял за движение в обратном направлении, на самом деле является рекурсией. Так что после достижения дна лисп в топчик прыгает.
Нужно провести крафудфандинг для разработки современной лисп-машины.
>>1201850Результат немного предсказуем.
>>1201850Я сделаю логотип
>>1201850>Нужно провести крафудфандинг для разработки современной лисп-машины.Я вот кстати непойму один момент. Лисп это динамическая параша, или статическое божество? С виду говно динамическое. Но! В лисп машине то память была тегированная, тоесть с типами в самом железе! Так что, куда лисп определить?
>>1198938Ты уже определись, или + можно использовать только для операций с числами, в математическом смысли, или для любых типов где операция коммутативна?Ну и как видишь на примере флоатов большинство разработчиков и коммитеттов ложит хуй на твои шизомнения о том, где допустимо использовать +Замечу еще что если бы ты хоть немного знал алгебру, за которую так копротивляешься, то несомненно бы видел тысячу примеров где + используется в теории групп, вместо абстрактного бинарного оператора, и что в той же теории групп никаких объязательств коммутативности в общем случае НЕТ. И в целом в математике точно так же все определяется конвенциями и удобством использования.Так что считаю твои манязапреты на использования + ГНИДСТВОМ, ШИЗОЙ И ЧЕРВЕПИДОРСТВОММимо
>>1202002
>>1202002Да нет, для абстрактного бинарного оператора обычно используется точка, круглешочек или ежичек. Плюс все-таки обычно используют в абелевых группах. Выше об этом, кстати, уже упоминалось.
>>1202028>Да нет, для абстрактного бинарного оператора обычно используется точкаНу ты бы хоть один пример живой привел.
>>1202028Это сейчас пришли к этому, причем не все, что опять таки говорит в пользу конвенций. Совсем недавно в тг часто использовали +, возьми ту же алгебру ван дер вардена.Ну и в целом если читать не только современные книжки, но и копнуть ненмого вглубь истории хорошо видно что в математике определяющим таки является удобство и лаконичность, даже не ясность и понятность.>>1200090Вот как этот господин в конце написал.Инб4 сема, семенПосмотри например на нотацию диофанта или разные нотации для диференциалов, корней.Ладно бы ты взял какой-то фундаметальный и неизменный концепт из математики. Но ты копротивляешься за нотацию, которая меняют чаще чем твоя мамаша ебарей.И в конце концов ладно там coq какой-нибудь или agda, но тащить какие-то математические догмы и сомнительные конвенции в прикладной язык ПРОГРАММИРОВАНИЯ( где уже устоялась своя конвеция использования + для конкатенации) попахивает залежавшимся в тумбочке галоперидолом.
>>1202037Что значит "живой" и каким образом? У нас лектор так писал. Ссылки выше уже аноны доставляли.>>1202042>Совсем недавно в тг часто использовали +, возьми ту же алгебру ван дер вардена.Пикрелейтед - скрин из ван дер вардена.>Но ты копротивляешься за нотациюЧини детектор.>тащить какие-то математические догмы и сомнительные конвенции в прикладной язык ПРОГРАММИРОВАНИЯТы своим постом уже показал свою некомпетентность в обоих этих областях, так что не думаю, что твое мнение имеет хоть какую-нибудь ценность.>уже устоялась своя конвеция использования + для конкатенацииВыше по треду было показано, что это ложь.
>>1202050>Выше по треду было показано, что это ложь.Какие ваши доказательства? Лжи в смысле.Ничего такого выше по треду показано не было.
>>1202050>Ты своим постом уже показал свою некомпетентность в обоих этих областях, так что не думаю, что твое мнение имеет хоть какую-нибудь ценность.Аргументы уровня пук>Пикрелейтед - скрин из ван дер вардена.Ок, это не он. Вот тебе скрин. Я бы мог еще повспоминать и накидать тебе кучу примеров за щеку где в тг не про абелевы группы без задней мысли пользуют + , но в силу см. выше считаю зря потраченным время даже на этот скрин.>Выше по треду было показано, что это ложь. Судя по твоим ответам даже не буду шквариться и искать. Но куча языков(C++, java, C#, ruby, python, js, swift, scala, basic, F#, Go, groovy, pascal, rust) занимающие процентов так под сотню в отрасли не языки, а вот именно парочка академязыков типа хачкеля, мл, агды, и т.д. определяют что нихуя там не устоялось.
>>1202069>>1202072>>1198351Коммутативный жи + в твоём примере.
>>1202072>Аргументы уровня пукНет, это аргумент уровня "попахивает залежавшимся в тумбочке галоперидолом". Не знаю, чего ты еще ожидал в ответ на это.>Я бы мог еще повспоминатьЗачем? Конкретный автор может использовать хоть смайлик "какашка" для обозначения бинарной операции, но >>1202028>обычно используется точка, круглешочек или ежичек>парочка академязыковАга, пхп и перл.>rustКстати, вот что по этому поводу думают растаманы:https://internals.rust-lang.org/t/implement-add-for-string-string/4088>Just because someone made a mistake once doesn’t mean it’s OK to further compound it.>If you want concatenation, argue for concatenation. Don’t misappropriate an operator to mean something different. That’s how you end up with iostreams, and I hope no one wants Rust to end up looking like that. Next you’ll be wanting to use a-b for a.replace(b, "") and % for &a[a.len()-b..]. Do you see how slippery this slope is? Even crazy people with mountain climbing gear wouldn’t go near it.
>>1202149>Ага, пхп и перл.1. Весьма специфические вещи.К тому-же, ПХП считается образцом плохого дизайна, так что странно ссылаться на него в данном контексте.2. Притягивание популярности ЯП это уже кидание какашками.Хотя ты тут этим только и занимаешься.3. Плюс перегружен во многих серьезных интырправз системах\инфраструктура-яп.И.Ни у кого не вызывает проблем.Более того, ты первый кого я вижу в жизни, кого-бы это хоть сколько волновало бы.Отсюда я делаю вывод, что никакой проблемы нет.И никаких серьезных аргумент против, как и за - нет.Это вкусовщина.Твои попытки обосновать вкусофщину - выглядят нелепо и даже безумно.Тебе говорят - что это неважно, а ты споришь с необходимостью плюс перегружать.Тебя никто так делать не заставляет.И ты свою грязную рожу не суй в общество белых людей.За дальнейшими подробными объяснениями прошу проследуй в ораклhttps://support.oracle.com/Объясни им почему + это так плохо, и попроси разъяснений.С результатами возвращай в тред.
>>1202167>так что странно ссылаться на него в данном контексте.Я думал ты поймешь, но раз нет, поясняю: я опровергаю твой поинт про то, что якобы только академические языки не используют плюс для конкатенации.>Притягивание популярности ЯП это уже кидание какашками.Ну, в целом верно; хорошо, что ты осознал свою ошибку. И несколько неожиданно.>Плюс перегружен во многих серьезных интырправз системахЯ надеюсь, что это удачная шутка (посмеялся, если что).>Более того, ты первый кого я вижу в жизниЕще раз повторю: чини детектор, >>1202028 - мой первый пост в этой дискуссии.>И никаких серьезных аргумент против, как и за - нет.Конечно есть. Конкатенировать нужно не только строки, но и, например, вектора. В то же время, для векторов плюс часто определяют как поэлементное сложение. Получаем противоречие.Алсо, аргумент про вывод типов выше по треду уже приводили.>Это вкусовщина.Ну, у гуманитариев от программирования все "вкусовщина". Раньше таких называли "хипстерами".>ты споришь с необходимостью плюс перегружать.Во-первых, я ни с чем не спорил. Во-вторых, такой необходимости нет.Дальше идет какой-то детский баттхерт, комментировать который не вижу смысла. Полагаю, что на этом разговор можно закончить.
>>1202167Перегружать плюс плохо, как я уже говорил из-за полиморфизма.Вот есть у тебя такая обобщенная функция:https://pastebin.com/2M5JDvEVНе соблюдая коммутативности для +, хуй ты её применишь для объектов с перегруженным плюсом, не зная деталей её реализации. Охуенный дизайн, чо.>За дальнейшими подробными объяснениями прошу проследуй в ораклВ жабе операторы перегружать нельзя. Для строк + -- это синтаксический сахар.
>>1202104Смотри внимательнее
>>1202189>Не соблюдая коммутативности для huiPizdaFunc, хуй ты её применишь для объектов с перегруженным плюсом, не зная деталей её реализации. Охуенный дизайн, чо.
>>1202244Ты нихуя не понял, как и следовало ожидать.
>>1202247Ты сам нихуя не понял где обгадился, поэтому тебе кажется что это я не понял.
>>1202286huiPizdaFunc и не обязан быть коммутативен, а перегруженный + объекта обязан, если хочется полиморфизма. Если не хочется, то нахуя его перегружать?
>>1202288>а перегруженный + объекта обязанС точки зрения твоих манядогм - да. Для тебя еще будет открытием что в тех же крестах на скале тоже видел + без задней мысли перегружают с разными типами, что с точки зрения теории групп тоже ЗОПРЕТ. И результат тут так же будет зависить от реализации.
>>1202292>С точки зрения твоих манядогм - да. С точки зрения параметрического полиморфизма.>что в тех же крестах на скале тоже видел + без задней мысли перегружают с разными типамиМиллионы мух не могут ошибаться.>что с точки зрения теории групп тоже ЗОПРЕТЕсли присутствует явное, или неявное преобразование из одного типа в другой и не нарушаются свойства сложения, то никакого запрета нет. Если что-то нарушено, то это уже не абелева группа, что с точки зрения программирования означает невозможность написать параметрически полиморфную функцию.
>>1201923Динамика, конечно, ты что, совсем дурачок.
>>1202292Скала - это такой C++ от мира функциональщины, такая же помойка из кое-как прилаженных чаще нет друг к другу фич
Спрошу тут.Вопрос по TYPED RACKETУ меня есть число FlonumКак мне его в Byte конвертировать правильно?Ну я там его округлили к интежеру привел fl->exact-integer, а дальше что?Как-то пипец сложно все для такой простой операции.
>>1203469https://docs.racket-lang.org/reference/bytestrings.html#%28def._%28%28quote._~23~25kernel%29._bytes%29%29 не?
>>1203493Не.
>>1203655Что не-то? Что тебе тогда надо? Byte в ракете - это любой фикснум в подходящем диапазоне, не? Если тебе нужно пихать что-то в байты, для этого есть байтстринг и функции записи байтов в стрим.
>>1203666>Что не-то? Что тебе тогда надо? Byte в ракете - это любой фикснум в подходящем диапазоне, не? Если тебе нужно пихать что-то в байты, для этого есть байтстринг и функции записи байтов в стрим. Не-то.Если брать любой фикснут, то, TYPED функции принимающие в качестве аргумента Byte - будут ругаться.
>>1203681Ну поставь аннотацию, хули ты.
>>1203721>Ну поставь аннотацию, хули ты. К чему?
>>1203847Ну к байту своему, не?
>>1203987>Ну к байту своему, не? А как?Можешь пример показать?
>>1204005https://docs.racket-lang.org/ts-guide/more.html