Тред для всех диалектов лиспа.Scheme,Common Lisp,Racket,LFE,Clojure,и т.д.Трем за гомоиконность, мультипарадигменность и метапрограммирование. Токсим на кложу и выступаем адвокатами кложи. Уважаем дедов и помогаем ньюфагам.
>>1057101 (OP)Лал, дохлотред дохлых парсеров АСТ-деревьев.Читнул недавно сикпу, оно конечно забавно первые пятьсот страниц, и поясняет за фунциональщину куда лучше, чем уебанская хаскель-книжка со слоном из прилипшего треда.Но, схема - учебное пособие, а остальные недоязыки из шапки - говно без задач с несовместимым синтаксисом.
>>1057347>говно без задач с несовместимым синтаксисомупитанноЛисп подходит к любой задаче, ты можешь вылепить из лиспа любой инструмент. Хочешь мыслить в термах объектов - пожалуйста. Хочешь мыслить в термах преобразований и структур данных - на здоровье.Если не удалось написать код под конкретную задачу, то скорее всего ты не правильно понял задачу.
>>1057347>оно конечно забавно первые пятьсот страниц,Мне дальше сотой плохо становиться, не могу дочитать. Щто делать?
>>1057373А зачем если есть инструменты удобнее?
>>1057394Что может быть удобнее того инструмента, который ты сделал сам под размер и форму своего мозга?
>>1057347>остальные недоязыки из шапки - говно без задачВы посмотрите на него. Он думает, что он великий погромист. Задачи не от языков происходят, а из головного мозга. Лиспы могут решать любые задачи. Нужно же хоть немножко думать, прежде чем изрыгать такие высеры. Хотел понтануться, но сел в лужу.Ах да, Scheme один из лучших Лиспов, один из старейших Лиспов, один из мощнейших языков существовавших когда-либо.
>>1057373>>1057484Не стоит надрываться, все равно не оценят. Пусть барахтаются в своем болоте.>>1057394Удобнее чем? В каких задачах удобнее? Для кого удобнее? Статья Пола Грэма "Лисп, побеждая посредственность", ясно показывает что Лиспы удобнее других языков. Благодаря использованию Лиспа, Грэм сумел побить всех конкурентов, и в итоге продал компанию за 10 млн. долларов, а это были 90-е годы.
>>1057825> Лиспы могут решать любые задачи.Много уже нарешал? Гитхаб в студию.
>>1057836Может тебе еще содержимое кошелька вывернуть?! Какие задачи не может решать Лисп, ну-ка расскажи?
>>1057843Какие задачи не может решать машинный код?
>>1057827Если ты сравниваешь успешность языка в способности побеждать конкурентов, то теперь лисп сам побежден, работы на нем нет, совсем, для 90-х он может и был каким то откровением, но сейчас он безнадежно устарел
>>1057854>работы на нем нетНе работы на нем нет, а люди не знают как пользоваться им. Лисп - это инструмент для создания инструментов, повышающих твою эффективность, как программиста. Не зависимо от работы ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процесса. Итог - минимум глупейших ошибок и багов в продакшене.
>>1057860>ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процессаМного написал уже?
Какой лисп самый православный?
>>1057861>Много написал уже?Много разных инструментов написал, в том числе и парочка таких имеется.
>>1057864Самый православный наверное схемка. А я вот быдлирую на кложе, это такой модный лисп
>>1057916Почему не Common Lisp?
>>1057922Если честно то сказал от пизды. Просто схемка очень минималистична, я это ценю. А на общелиспе я не писал, но слышал что он не очень консистентен. Лучше у шарящих бывалых челов узнать. Я кложескрипт-модник
>>1057872Разумеется, ты нам их не покажешь
>>1057956Конечно не покажу. Какой смысл, даже если тебе покажешь изящнейший edsl из какой-нибудь лисповой библиотеки то ты один хрен доебешься до скобочек и изящности там не увидишь. :)Если ты не понимаешь зачем тебе надо лисп, то значит он тебе не надо.Погугли термы из шапки и реши для себя, поможет ли тебе эти концепции писать лучший код? Если нет то и не еби себе головы.Лисп это тоже не серебрянная пуля, хотя имхо очень похожаИ это довольно ошибочное мнение что типа ничего на лиспе не пишется и никто на нем не пишет.Кому надо, тот пишет
>>1058056Факториалы пишет?
>>1057347>Читнул недавно сикпу, оно конечно забавно первые пятьсот страниц, и поясняет за фунциональщину куда лучшеTi sovsem dayn? Tam pochti nichego po FP net krome HOF i TCO, no eto sovsem azi dlya teh kto tolko vkativaetsya v programmirovanie, kak i vsya kniga sobstvenno.
>>1057956Это моя коммерческая тайна. Может когда-нибудь открою исходники, когда актуальность потеряется. Но все равно это будет всем похуй. Вам жабу, да пхп подавай.
>>1058269В голос с мамкиного цукерберга.
>>1058284Я на дядю работаю. Просто дядя и коллеги-макаки не знают о том, почему у меня код без багов.
>>1058105ну я например пишу интерфейсы на кложескрипте.
>>1058105AutoCAD написан на Лиспе, это навскидку.
>>1058341https://stackoverflow.com/questions/779639/what-are-cad-apps-written-in-and-how-are-they-organized> As my company is a registered developer for AutoCAD, I know for certain that its written in C++.
>>1058341Автокад лиспом только скриптуется, да и от этого давно и упорно отходят
>>1057860>Лисп - это инструмент для создания инструментов, повышающих твою эффективность, как программиста. Не зависимо от работы ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процесса.За счет каких фишек лисп позволяет это делать?
>>1058446Макросы плюс гомоиконность позволяют делать это с минимумом затрат времени. Ничто не мешает это делать и на других языках, только заебешься.
>>1058480Можешь привести конкретные примеры с кодом? Было бы интересно поглядеть. Прочитал про гомоиконы, неплохо, неплохо.мимо-джава-выблядок
>>1058497Practical common lisp почитай. Там полно примеров.
Надеюсь не сильно холиварно, но хотел спросить. Есть ли здесь люди, которые выбрали динамическую типизацию сознательно? То есть уже хорошо шаря в программировании, зная о системе типов ML семейства, выводе типов и т.п. То есть я напримен начинал с Ruby и Python, и чувствую как они "врали", предлагая это как лучший "developer experience", в том плане что ооп и динамическая типизация могут быть не так хороши. Хотелось бы мнения опытных лисперов.
>>1058699Я знаю хаскел и сознательно сыбал в лисп, на лиспе я приложения делаю, а не пытаюсь в своих вычислениях вычленить монаду или моноид. Я не мыслю так как мыслят хаскелисты и мне тяжело на нем писать, я бы не хотел фултайм писать на хаскеле с его типизацией
>>1058749На работе тоже на лиспе пишешь?
>>1057827>рэм сумел побить всех конкурентов, и в итоге продал компанию за 10 млн. долларов, а это были 90-е годыИменно что 90-е. Тогда можно было продать за лям даже без языка любой сайт в зоне дот ком. Ты на Грэма посмотри, он же ебучий альфа самец, небось выебал кого надо и втюхал свой стартап.Алсо почему нет норм книг по лиспу? Я ожидал что раз этот язык близок к математике, по нему полно толковых книг где все изложено предельно точно в стиле учебников по матану. Но ирл какая-то хуета, особенно учебник самого Грэма.
>>1059814СИКП, ТАПЛ, и т.п.
>>1059814http://newstar.rinet.ru/~goga/sicp/sicp.pdfhttp://newstar.rinet.ru/~goga/tapl/tapl.pdfВот то что тебе нужно, а не учебник по языку Лисп.>>1059814>Я ожидал что раз этот язык близок к математике, по нему полно толковых книгЕсть люди, которые говорят, что в СИКПе много математики (не много), почитай.Если хочешь подняться выше над этим и понять суть способов вычисления в программах, а их 2: Машина Тьюринга и Лямбда-исчисление, то смотри видео https://www.youtube.com/watch?v=dowYB_dPkmUПоняв теорию Машины Тьюринга и Лямбда-исчисления, прочитав СИКП и выполнив упражнения из нее, можно серьезно прокачать программирование. Не будет проблем писать на любом языке, не только на Лиспах.
>>1059908Лол, там в коммента макимка всплыл. Есть фото его жены?
>>1057854ветка тех, у кого на работе лисп. у меня кложа.
>>1059937Над чем рабоатешь?
>>1059940транспортная область. апишечка, графы, neo4j
>>1059940и второй проект - тупо вебчик, микросервис внутри какой-то неведомой большой хрени. апишечка над разными апишечками
>>1059908>Если хочешь подняться выше над этим и понять суть способов вычисления в программахСпасибо, очень хочу.
>>1059699да, на лиспе, а точнее на диалекте clojure/clojurescript
>>1060457для интереса, покажи :dependencies проекта :)
>>1059908Cлучайно нет Митчелла, основания языков программирования?
>>1062061На русском пока нет. Что там есть интересного?
>>1062151На него ссылается TAPL. Классика же.
>>1062190Не ну ТАПЛ конечно авторитетная книга, но я спрашивал больше о содержании вообще. Какая цель у книги, о чём там пишут?
>>1062307Название как бы намекает о целях. Разбирают формальные системы, лямбда исчисление и т.п. теорию. Я не читал, только просмотрел по диагонали, по математике врдое даже хардкорнее ТАПЛ. Похожа на книжку Харпера.
>>1062339Походу ты шаришь в теории CS, какие еще книги можно почитать?
>>1062339Что за Харпер, по фамилии без названия книг не нагуглишь?
>>1062363http://www.twirpx.com/file/1204642/У него еще бложек есть https://existentialtype.wordpress.com
>>1062362Я не шарю, перекатываюсь из матана в программинг, ищу что почитать по теории.
>>1062362Пока склоняюсь к Харперу - книга самая новая из всех, плюс второе издание, т.е. проверена временем.В ТАПЛ сходу не понравилось, что они понятие типа (которое как бы центральное) строго не определяют, а дают интуитивное описание.
А где лишп-канон тред?
>>1060457гуглил как-то вакансии - по всей России всего одна
>>1065095когда это было? искал для себя или просто интересовался?
>>1065599Я мечтал работать на Луговского, поэтому интересовался.
>>1065599Да совсем недавно, просто интересовалсяСейчас, кстати, аж целых двеhttps://hh.ru/vacancy/22768381https://hh.ru/vacancy/22696531
Каррирование имеет строгое доказательство или это просто интуитивное соображение насчет функций многих переменных?
>>1065787еще 2 целевых и несколько совмещающих https://moikrug.ru/vacancies?q=clojure¤cy=rur
>>1067855CLOJURE не считается. Вот если бы на коммон лисп или схеме.
>>1065894Каррирование - это тривиальное преобразование:(define (f x y) (do-something x y))(define (g x) (lambda (y) (f x y)))Какие тут доказательства нужны?
>>1068028Непересечение параллельных тоже тривиальное.Интересует статус, это теорема (тогда к чему сводится) или аксиома.
>>1068050Теорема, т.к. в лямбда исчислении нет функций (абстракций) многих переменных.
>>1068114Значит это не теорема, а определение функции многих переменных как композицию по одной.
>>1068155Нет, многоаргументную функцию можно определить как ту, у которой аргумент - декартово произведение двух термов (заодно определив термы для создания и разбора декартова произведения).
>>1068159Понятно, спасибо.
Вы какие-то умные. Вас почитаешь - так вы математики какие-то, а не программисты. Теоремы с аксиомами у вас. В ООП такого нет. Если я вкачусь в Clojure стану таким же?
Кложурианцы, в каких языках, кроме собственно clojure такой же по уровню REPL-experience? Ну вряд ли такой же, но с достаточной интерактивностью, чтобы весь evaluation & inspection был прямо в хоткеях на кончиках пальцев одновременно с написанием кода. В F# + Vs code я тоже писал/запускал на ходу, хотя менее удобно (мб в емаксе удобнее, не пробовал в нём f#), наверное то же есть в хаскелле/окамле. В питоне, скале, js вроде как repl - известная штука, но работают ли с ним профи так же тесно, как в лиспах?
>>1072308Сразу в хаскель.
>>1072308Если хочешь выглядить умно и математично (или ты математик и занимаешься функциональным анализом и ты слышал раньше про теорию категорий). То конечно же хаскел, как >>1072348посоветовал ну или потроллил.Лисп более практически ориентирован, он динамический и заебов там максимально мало, он супер минималистичен и этим немного отпугивает новичков. Например программа на лиспе это рекурсивный список символов :) Базис на котором строится лисп это только сырое лямбда-исчисление и гомоиконность. Но этого хватает для того чтобы написать программу любой сложности и что на много БОЛЕЕ ВАЖНО, ты можешь управлять этой сложностью.Советую тебе попробовать и то и другое и выбрать то что тебе больше подойдет. Причем не обязательно оно может подойти сейчас. Я первый раз на лисп и хаскел посмотрел после того как статьи на лурке прочитал еще на первом курсе универа. Я тогда сочно ахуел, но после пары языков и некоторого опыта в продакшене вернулся к этим инструментам.
Нах в хаскеле категории? Это ж аппарат для абстрактных разделов математики, зачем к простым дискретным объектам его подтягивать?
>>1072534Да хуй знает зачем они там, я пытался разобраться, но нихуя не понял.Моноид какой-то в категории эндофункторов. Чета там про пруфы и корректность. В теории полезно, на практике не понял где можно применить. Может хаскелисты лучше пояснят
>>1072308>В ООП такого нетТак ООП и не нужен.
>>1072540По теоркату для программистов есть вот эта серия статей:https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/Там всё подробно жуётся с примерами на плюсах (C++14) и хаскеле.
>>1072482Спасибо. С Clojure обязательно познакомлюсь
>>1073711Кложур как раз нихуя не >супер минималистичен
>>1073776ну не то чтобы прямо "нихуя", все-таки это лисп. Но да, жаба и жабаскрипт накладывают свой отпечаток, так как это все-таки хостед язык и он дизайнился таким.Меня лично больше всего подогревает recur вместо православной рекурсии с TCO, но с этим можно жить, это задевает только мои эстетические чувства. Еще есть структуры данных отличные от старых добрых списков, но я считаю что это хорошо, эти персистентные структуры данных это имхо одна из самых ахуенных фич которая очень значительно увеличивает производительность, так что я считаю это выгодный размен.Опиши пожалуйста какие у тебя претензии к кложе чтобы я лучше понимал.
>>1073786> вместоРазве loop-recur не сделаны ровно для tco?
>>1073816>Разве loop-recur не сделаны ровно для tco?да, неправильно выразился
>>1072686ну как не нужен, нужен конечно. Принципы дизайна объектов вполне себе мапятся на функции и структуры данных. Ведь ты часто ассоциируешь какие-то функции с какими-то определенными типами данных. Хорошо написанные программы в ОО парадигме вполне себе хорошо читаются.Отстойно когда чел владеет только лишь ООП и сует его везде где надо и где не надо.Где не надо, там не нужно.
Я вас бампану.
>>1057101 (OP)Ну что посоны, лисп?
>>1079988Мы в эликсир-трежд перекатились.
>>1079740Не вижу ничего интересного в той беседе. Чувак просто никогда не писал на кложе и не понимает, как она устроена, поэтому выдает перлы вроде "использовать Lumo вместо гугл кложекомпайлер", "кложевский extend реализован через джавовский extend", "jvm предназначена только для джава-кода" или "клжс привязан к кложевским типам, а они в свою очередь - к джавовским". Ну, это все просто хуита, и нормальному человеку достаточно 5 минут и гугла чтобы это осознать.Если тебе интересна кложа в контексте привязки\не привязки к жвм - я вроде в том же треде выше писал. В данный момент кложескриптовая инфраструктура завязана на lein (зависимости, репозитории-обертки для жс-либ, фигвил, клжсбуилд, вот это все), который для разрешения зависимостей использует мавен. Поэтому если ты хочешь писать на кложескрипте что-то серьезное, то тебе нужна жава на дев-машине. Теоретически, можно написать читый кложевский или жсный тулинг, который будет парсить project.clj и тягать зависимости без мавена, но это, мягко говоря, не самая приоритетная задача.
>>1080227>Ну, это все просто хуита, и нормальному человеку достаточно 5 минут и гугла чтобы это осознатьhttps://en.wikipedia.org/wiki/Clojure>Rich Hickey developed Clojure because he wanted a modern Lisp for functional programming, symbiotic with the established Java platform, and designed for concurrency>symbiotic with the established Java platform>Clojure runs on the Java virtual machine and as a result integrates with Java and fully supports calling Java code from Clojure,[45] and Clojure code can be called from Java also>The primary platform of Clojure is the JVMsymbiotic with the established Java platformClojure runs on the Java virtual machineintegrates with Javacalling Java code from ClojureThe primary platform of Clojure is the JVM>если ты хочешь писать на кложескрипте что-то серьезное, то тебе нужна жава на дев-машине>НИЕТ КЛОЖА НИКАК НИСВЯЗАННА С JAVA ВЫ ВСЕ ТУПЫЕ ОДИН Я В БЕЛОМ СИЖУ ВЕСЬ СПЕЦИАЛИСТОукей.
>>1080249Ну вот, хотя бы википедию про кложу открыл, лол, уже какой-никакой прогресс есть. Теперь гугли "clojure extend" и читай. Как сделаешь - возвращайся.
>>1080338>Ну вот, хотя бы википедию про кложу открыл, лол, уже какой-никакой прогресс есть. Я мимокрокодил.А ты ебанутый.>clojure extendНикоем образом не изменяет факта глубокой интеграции кложи с джавой.А так же того факта, что сие есть основное свойство кложи.
>>1080520>Никоем образом не изменяет факта глубокой интеграции кложи с джавойА этот факт кто-то оспаривал? И еще меня ебанутым называет, лол.> сие есть основное свойство кложи.Только не с джавой, а с хостом. И не основное, а одно из основных. Собственно, в rationale это и написано. Ты что сказать-то хотел?
>>1057101 (OP)http://grishaev.me/baltimore#clojure #успех
>>1080726> Под вечер улицы наполняются молодыми чернокожими. Они улыбаются и просят немного мелочи.
>>1080571>Ты что сказать-то хотел? >А этот факт кто-то оспаривал? И еще меня ебанутым называет, лол.Ну ты ли говорил что, кложа мол не имеет анальной привязке к дажве?Коль нет так я ошибся. Добра.
>>1080779Изначально я оспаривал утверждение того идиота, у которого lumo используется вместо google closure compiler'а, о том, что "кложа неприменима за пределами джава-мира". Ну а дальше идиотия расплескалась и рамки дискуссии несколько размылись.По поводу степени анальности привязки клжс к жвм пояснял выше в этом треде и в том треде. По поводу clojure-crl, кстати, не пояснял - а надо бы. Но я ее не юзал.
>>1080796>кстати, не пояснял - а надо быГалопередону лучше выпей. Сириусли.>кложа неприменима за пределами джава-мираА кложа ли это, если оно за пределами джава мира?Так то и для джавы можно написать компилятор хоть в бинарник, и заявить что мол джава то и за пределами джава мира применима, только нельзя джава библиотеки подключать, и под каждую ось\архитектуру свой бинарник, и надо сишные либы пользовать, а так то да, за пределами джава мира джава имеет просто невероятное применения.Ну ептв, глубоко не конструктивно рассматривать подобные вещи вне платформы и окружения.
>>1080818>Галопередону лучше выпей.Батенька, опять у вас проекции протекают?> вне платформы и окружения.Вы что, сговорились тут все? Жвм, жс и дотнет - это три разных окружения. Кложецрл вообще никакого отношения к джаве не имеет. По поводу статуса анальности привязки дев-енвиронмента кложескрипта к джаве я пояснял выше.И да, кстати, для кложи есть компиляторы в бинарники, в си, в ерланг вм байт-код, в скиму - да даже компилятор в твою мамашу, подозреваю, найдется. О них, разумеется, никто речи не ведет.
>>1080825>Батенька, опять у вас проекции протекают?Причем тут проекции?У тебя навязчивые идеи.>Жвм, жс и дотнет - это три разных окружения.Да.>Кложецрл вообще никакого отношения к джаве не имеет.Именно!>я пояснял вышеДержи нас в курсе.
>>1080227> "клжс привязан к кложевским типам, а они в свою очередь - к джавовским". Ну, это все просто хуита, и нормальному человеку достаточно 5 минутКонечно достаточно.user=> (type 10)java.lang.Longuser=> (type 10.0)java.lang.Doubleuser=> (type Thread)java.lang.Class(type clojure.lang.Symbol)java.lang.ClassВсе персистентные структуры в кложуре тоже are implemented in java А вот в cljs они are clojure types в чём можно посмотреть прямо здесь.https://github.com/clojure/clojurescript/blob/master/src/main/cljs/cljs/core.cljsТак что не так то?
>>1080848Ну вот ты и разобрался со своим вопросом, молодец. >>1080873> Так что не так то?Конкретно по этому пункту - клжс-типы не привязаны к джава-типам. Я как бы в контексте этого ту цитату и приводил. Читай начало диалога в эликсир-треде.
>>1080883>Ну вот ты и разобрался со своим вопросом, молодец. У меня не было никаких вопросов, у тебя точно с головой все в порядке?
Чо вы все пытаетесь усомниться в умственных способностях чела который с вами не согласен? Это такая защита школьная?Это не добавляет веса вашим аргументам, а наоборот.
>>1081059>Чо вы все пытаетесь усомниться в умственных способностях чела который с вами не согласен? Это такая защита школьная?>Это не добавляет веса вашим аргументам, а наоборот. Лично я сомневаюсь не в способностях, а в здравости.Ибо >>1080883 чел в своих постах говорит фактически сам с собой.
>>1080913>А кложа ли это, если оно за пределами джава мира?>У меня не было никаких вопросову тебя точно с головой все в порядке? >>1081059Тут только один залетный школоло этим занимается, не обращай внимания. Я только указываю на пробелы в знаниях.
>>1081222>Я только указываю на пробелы в знаниях.>у тебя точно с головой все в порядке?
>>1081222Просто ты мудак.http://lurkmore.to/Мудак>главная отличительная черта мудака — это упертость в паре со священной уверенностью в собственной правоте (причем, эту правоту непременно надо навязать всему миру — иначе мир останется несовершенным).
>>1081223>>1081231--> /soc--> /me
Erlang треда нет, поэтому здесь спрошу. Кто нибудь осилил это? https://github.com/synrc/n2ohttps://github.com/voxoz/mq
>>1084254Эликсир-тред же. А в чем конкретно вопрос-то?
>>1084348Да доки почти нет, никак не могу въехать в весь этот стек. Там что-то дохрена всяких протоколов, еще больше разных зависимостей, понять как все устроено сложно.
>>1084348В эликсир треде глухо. И вообще мне кажется там одни хипстеры, в эрланге они навряд ли шарят.
>>1072329Smalltalk
>>1084381Пиши максимке этому, лол.>>1084383Ну хуй знает, я тоже не шарю, тем более в конкретных специфических либах типа н2о.>>1072329Только в лиспах, форте и смолтоке.
>>1072329IDE тайп-чекер всегда как автоматизированный REPL
>>1057385Бросить программирование.
>>1057843Задачи по заработку лавэ
>>1057844Быть дружелюбным к программисту.
>>1084634И сейчас 80% погромистов такие хуяк и бросают, потому что анон так сказал
>>1084621Погугли, что означает слово "REPL", дебил. Спасибо.
Скажите кто знает, как заставить DrRacket дополнять идентификаторы пользователя. Ctrl+/ дополняет встроенные только. Вообще ide замечательная.
>>1087627Там наверное нету такого. Все-таки это же учебная иде, для преподавания в первую очередь. Но в качестве "скачал и хуяк-хуяк в продакшен" - один из лучших примеров, ящитаю, да.
https://sekao.net/lightmod/> Lightmod is a tightly integrated tool for making full stack Clojure and ClojureScript web apps. It is fully self-contained -- no need to install the JDK or any build tool. It hot reloads both client and server code automatically with zero setup.
https://www.youtube.com/watch?v=kcZVkvO1DpoЧувак написал тайпчекер(!), который по совместительству следит за всеми значениями в работающей(!!) программе и на их основе эвристически(!!!) вычисляет вероятные ассерты, которые программер мог бы написать для этих значений(!!!!).In Soviet Russia the code specs you.
>>1088099как же английский уебищно звучитнассал хипстоте в подвороты
>>1088147>как же английский уебищно звучит>нассал хипстоте в подворотыКритик нашелся, лингвист херов. Ты же разговариваешь как помойка. Ртом срешь только.
>>1088149>Критик нашелсяну а чо, звучит словно хипстор в кепке хочет блевануть, а вместо блевотины вываливается кусок слова в три звука
>>1088149Должен заметить, что он в чем-то прав.Этот докладчик еще ничего, а там другие, в дерьмо куртках и с усиками девственников.Доклады уровня курсач_4курс
>>1088152з.ы. видосик отклеилсяhttps://youtu.be/ijBQOSHmC4g
>>1088153При чем тут хипстеры. Он пишет, что английский для него плохо звучит. Зато его помойное наречие, с матом через слово хорошо звучит, хорошо для быдла.
>>1088158а ты че так тригернулся? бесишься, что англопарашу кто то за язык не считает? мене еше ютубопидоры не нравятся, все что можно написать в пару абзацев с картинкам, растягивают на лекцию в академчас, причем с хуевой дикцией.
>>1088160Видно ты кроме как срать ртом ничего не умеешь.
>>1088160Не легко тебе прийдется в новом времени :)Ну ничо, как-нибудь может быть справишься.Попробуй например сфокусироваться на том, что чувак говорит, а не на том, как он выглядит.
Недавно доклад яндекса смотрел, на их канале "Разработка". Так там сидел женоподобный паренек с дырками в ушах, в первом ряду причем. Но почему то никто не замечал, хотя под видео было не мало комментов.
>>1088192>на том, что чувак говоритманюнь, никто тебе ноухау не расскажет, а слушать очередной хипстерский пиздежь, увольте.>в новом временивремя семантического шума
>>1088198>было не мало комментовсотрудников яндекса?
>>1088203Так чо ты вылез то тогда? Забирайся обратно под мост :)Здесь хипстеры софт разрабатывают
>>1088208>Здесь хипстеры софт разрабатываютгенератор пропорций для смузи или вейпа? хипстеры по определению ничего толкового разработать не могут и они постоянно это подтверждают
>>1088209зелененький, расслабься уже. Никто тут на твою "ряя английский, ряяя хипстер" не поведется.
>>1088210ну так глотай молча тогда, а то вон предыдущий трегирнулся и к мамке побежал
>>1088211С чего ты решил что он тригернулся? Он просто сказал тебе что ты мудак.Иди потролль лучше в эликсир треде или го треде.Будешь там королём :D
>>1088213>Он просто сказал тебе что ты мудак.причем его не оскорбляли>эликсир треде или го треде.тебя от туда пидорнули?
Шаг № 6: для того что бы влиться в компанию хуипстеров (хипстеров) вам нужно посещать такие места как: Старбакс, ReStore (где вы неистово ананируйте на айфон 5, ибо блядь денег то у вас нихуя на него нету, и поэтому ананировать ,это всё что вам остаётся). после того как вас заметят другие долбаёбы, они последовательно, добвавят вас в фейсбук (почему фейсбук, а не ВК, да потому-что эти ебланы не могут терпеть всё что сделано в россии, но есть и исключение, это фотоаппарат ебучий зенит). В этом фейсбуке вам предложат сходить на сходку (ебучая тавтология), после сходки вас попробуют вписать в крвартиру (в простонародье называется вписка, ну или вписон, кто как привык), и если когда вы пришли на эту блядоквартиру, вы обнаруживаете сидящий на диване кучку людей очень схожих с пидарасами, то помните, это и есть хипстеры (хуипстеры) на которых вы старайтесь походить. И если они смотрят кино на английском, и при этом делают умное выражение лица как будто что-то понимают, то я вас уверяю НИХУЯ ОНИ БЛЯДЬ ТАМ НЕ ПОНИМАЮТ, а только создают иллюзию чтоб казаться неебовыми мать их так знатоками инглиша. Кинокак вы знаете не вечно, и рано или поздно оно кончается, и после того, как оно закончилось, берегитесь, для вашего восприятия откроется новый как вам покажется язык. То что вы будете слышать будет совершенно невоспримчиво для вашего разума если вы хоть капельку не знаете английский язык (кстати да, для ого что бы стать хипстером, вам нужно заучить и научится и понимать, всякие бессвязные и абсурдные фразы на инглише, без этого никак), то что вы будете слышать, это смесь блядь великого и могучего русского языка в перемешку с американским поносом, хипстеры считают,что это пиздато, хотя мы блядь, так не думаем. И не забываем шутить про мамочек остальных хипстеров, они находят это очень смешным и "Son true" (хотя мы блядь, так не считаем). И не вздумайте произнести подобную шутку в адрес не хипстера, за это можно получить пизды.
Шаг № 9: Вам придётся пересмотреть свои политеческие взгляды, потому-что по мнению хуипстеров всё что не происходило в нашей стране, и кто бы не стоял у власти, всё как они говорят это "bullshit", они абсолютно презирают нашу власть, нашу страну, и мечтают при первой же удобной возможности съебаться на запад, к своим любиим Рональдам Макдональдам и чёрному властелину (не в обиду Обаме было сказано).
>>1088216да, а теперь еще пидорнули и отсюда :) Новый тред я создавать не буду, как и заходить сюда. Упивайся своей крутостью и дерзостью в одиночестве или в компании таких же как ты.
>>1088147У него классический нью-йоркский акцент, мелкобуквенный школоло-дебил.
>>1088266>классический нью-йоркский акцентэто же дно ебаное, еще нигеров с гарлема бы позвали
>>1088274Лулз в том, что он из Техаса. Да, не ебу, как это работает.
>>1088158>При чем тут хипстеры.Ну не причем так не причем.> Он пишет, что английский для него плохо звучит. Зато его помойное наречие, с матом через слово хорошо звучит, хорошо для быдла. Ну больной чел, че поделать.Мне правда конкретно не понравилось как тот докладчик говорит, сложно что-то разобрать.
>>1088192>Не легко тебе прийдется в новом времени :)Да просто не касатся джава макакеннов и всего что сними связанно.И будет норм.
>>1088198>Недавно доклад яндекса смотрел, на их канале "Разработка". Так там сидел женоподобный паренек с дырками в ушах, в первом ряду причем. Но почему то никто не замечал, хотя под видео было не мало комментов. Ты латентный гей or romеthing, или что?Током ебнуть?
>>1088220>>1088218
>>1088406А ты открытый.
>>1088663
Объясните тупому что такое Lightmod? Описание непонятное. IDE это или что?
>>1090323https://sekao.net/lightmod/ - этот?Там же написано: ide со встроенным сервером, компайлером кложурскрипта, хоткод-релоадером и фреймворками. Ну чтоб скачал, запустил, хуяк-хуяк и в продакшн.
>>1090496Не написано там про встроенный сервер, компилятор, и фреймворки. Про IDE ни слова нет. И вообще какие то лендинги сейчас не правильные делают. Описание в низу и маленьким шрифтом. Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра.
>>1090663>Про IDE ни слова нет.А по картинке не видно разве?> Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра. Тоже не удивлюсь, ибо полезность сего поделия мне представляется весьма сомнительной, например.С другой стороны - она же для полных нубов, и сразу после картинки там идет ссылка на скринкаст. То есть если бы я был нубом, я бы как раз получил всю информацию, что мне нужна, в правильной последовательности. Чо это? Хуйня, которой хуячить веб аппы можно. А как оно выглядит воще? А вот так. Прикольно, а чо там делать воще можно? А вот чо. Заебись, где скачать? Вот здесь качай. И пока скачивается: депенденси есть какие-то? Жирным шрифтом: ноу нид ту инстал джейдэка.Так что все в общем-то логично, но ненужно.
Изучаю уже около трех недель scheme по sicp (или учусь программировать с помощью scheme, кому как удобнее), даже создавал тред, но его смыло. sicp изучил уже на 420 страниц.Господи, я раньше никогда, за редкими исключеними, не программировал, (однако знаком с общими парадигмами и очень поверхностно с крестами, бэйсиком, шарпом и питоном) но я даже представить себе не мог, что такое чудо, как lisp, существует. Это идеальный язык, безумно красивый и удобный для написания.Я планировал после изучения cs выучить c++ и заняться написанием приложений на блокчейне, но теперь хочется послать это крестовое убожество. Потому вопрос: можно ли писать полноценные приложения, предполагающие массовое использование, на scheme? Я понимаю, что он тьюринг-полный, мой вопрос в том, имею ли я моральное и техническое право так делать?Еще полистал книгу со слоном по haskell, тоже понравился из-за основы на лямбда-исчислении. Это будет моим запасным вариантом. Кресты и прочее - просто убрать из головы, забыть навсегда и никогда к ним не приходить.
>>1090795>можно ли писать полноценные приложения, предполагающие массовое использование, на scheme?Никто не запрещает. Но на лиспе и хаскелле ничего не пишут, поэтому платить тебе никто не будет. Выучи кресты или джаву и иди работать кодовой макакой, чо тут еще думать
>>1090795На Clojure пишут что-то на тему блокчейна.
>>1090795Очевидный clojure очевиден, да. >>1090865>на лиспе и хаскелле ничего не пишутКак там в 2005?
Если у меня в main.lisp подключен другой, например (load "~/quicklisp/setup.lisp"), при компиляции main.lisp мне надо явно указывать что компилировать нужно и quicklisp.lisp, а с ним и те, что он сам подключает? И прошу пояснить как распарсить аргументы командной строки в ecl, а то я чет совсем охуел от сложности.
>>1090795>имею ли я моральное и техническое право так делать?Если будешь говнокодить, то моральное право не имеешь.
Борщехлёбы, у кого-нибудь из вас получилось собрать CCL на арче из аура, который ccl-svn или другой?
why?
>>1092378"b" ≠ 'b
wtf?
>>1092486
>>1090663> И вообще какие то лендинги сейчас не правильные делают. Описание в низу и маленьким шрифтом. Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра. Лол да.Там появились какие-то бесплатные\платные шаблоны для сайтов, вида:(большая_картинка еще_одна_огромная_картина строчка_текста_растянутая_на_весь_экран огромная_картинка большими_буквами_слоган копирайт)Типо под мобильные девайсы, или чтобы месседж пипл лучше хавал, я не знаю. php макаки могли бы пояснить лучше.Заходишь на сайт, видишь йоба картинку на весь экран и прокрутку длинной в Аллаха, и закрываешь вкладку.И самое главное, инфы на таком сайте ноль. Одни слоганы.
>>1092486Да то же самое: ты сравниваешь символы со строками, а лисп, напомню, не слаботипизированный, как какой-нибудь перл или жс
>>1093524Да, я уже понял (string=)
Пацаны, у вас есть какая-нибудь конфа, где можно позадавать свои глупые вопросы?
Как найти работку на лиспе? Где обычно на нём пишут?
>>1093734Пили стартап
>>1093724В жаббере была конфа
>>1092486Цикл не нужен, строки с символами сравнивать не нужно, велосипеды не нужны(defparameter fl '("lisp" "lsp" "cl" ))(let ((path (parse-namestring "/tmp/test.lisp")))__(format t "~:[Not~;~:~a is~] found"____(find (pathname-type path) fl* :test #'equal)))
>>1093888Ебаная разметка(defparameter fl '("lisp" "lsp" ))(let ((path (parse-namestring "/tmp/test.lisp")))__(format t "~:[Not~;~:*~a is~] found"____(find (pathname-type path) fl :test #'equal)))
>>1093724irc же.>>1093734> Гдеhttps://jobs.braveclojure.com/> remote (Anywhere)
>>1093935>irc же.А сервер не подскажешь?
>>1093724https://xach.livejournal.com/325276.html
>>1057101 (OP)думаю вкатиться в Schemeс чего начать, какие подводные?
>>1093937Наркоман совсем? фринод>>1094156С plt racket и htdp. Начнешь ненавидеть питончег с руби и прочие перлы.
>>1094156Начни с общелиспа.
>>1094519Очень плохой совет.
>>1094532Что плохого в совете начать с живого языка с библиотеками и нормальными реализациями, а не зоопарка несовместимых поделок для студентов?
>>1094156http://racket-lang.org/
>>1094543т.е. после основы будет легче разобраться с диалектами?
>>1094958Racket (бывший Scheme) проще чем Common Lisp. Если ты проходишь SICP, то лучше используй Racket. Ты не написал для чего тебе нужен Scheme, стоит сначала определиться с целью, и из этого можно будет понять какой язык лучше или хуже подходит.
>>1094543Интересный у тебя манямир, что еще расскажешь?>>1094958> с диалектамиClojure, CL и Scheme - такие же ДИАЛЕКТЫ, как джава, алгол и pure c. Сам как думаешь, много общего у джавы и си - помимо того, что они выглядят похоже?>>1094988Вот этого двачую.
https://www.infoq.com/news/2017/11/racket-6-11-dependent-types> Racket 6.11 brings refinement types and dependent function types to its Typed Racket variant.> Having dependent types in Typed Racket makes it possible to check properties of programs that you can’t express in almost any other language. We’re just starting to explore the kinds of improvements we can make to programs by using this new information, but we hope to make both faster and more reliable software using refinement and dependent types in Typed Racket.
Скажите, в какой мере Lisp применим для системного программирования?
>>1095022Можно использовать, если очень хочется.
>>1095024Не то чтобы очень хочется. Хотелось бы сориентироваться, что хорошего (из языков) есть для системного программирования и систем реального времени (хотя бы мягкого).
>>1095028Из лиспов для такого подойдёт разве что, ECL или что-то подобное.А вообще garbage collector и real-time вместе не особо сочетаются.
>>1095014Зависимые типы как в Idris? Почему здесь написано, что этой фичи нет в других языках?
>>1095022Для этого лучше OCaml.
>>1095014Verification and Advanced Types in Racket - https://github.com/racket/racket/wiki/Verification-and-Advanced-Types-in-Racket
>>1095065Если не трудно, объясните плз, чем лучше?
>>1095079OCaml очень быстрый, хотя и имеет сборщик мусора. Непонятно что ты подразумеваешь под системным программированием, это расплывчатое понятие.
Привет /лисп/ач, пишу на Common Lisp'е и получаю за это деньги, порадуйтесь за меня.
>>1095089Есть подозрения, что окамл и сбцл не особо различаются по скорости.>>1095271Я порадовался :3 Кулстори будет?
И эти пидорасы еще позволяют себе что-то там кукарекать про скобочки. Убивать, блядь, только так.
>>1095089>подразумеваешь под системным программированиемresources managementmemory managementЧтобы было возможно при кодировании как-то оценивать (хотя бы приблизительно) объём памяти для используемых выражений и время их работы (не знаю как назвать это свойство языка).
>>1095271Нихуя ты, молодчина.
>>1095031А что на счёт Bone Lisp?
>>1095416Или вот ещё https://github.com/carp-lang/CarpИли это слишком маргинально?
>>1095400>объём памяти для используемых выражений и время их работыТы какой-то странный. Это можно сделать практически для любого языка, и системное программирование тут ни при чем.
>>1095064Потому что dependent types + refinement types + occurence typing + еще к тому же типы интегрированы в систему контрактов, то есть вся информация о них (опционально) есть в том числе и в рантайме. Ну и плюс еще линейные типы пилят, да.То есть у тебя есть все возможности, которые предоставляют все статически-типизированные языки вместе взятые, но в динамическом по умолчанию языке. То есть ты можешь хуяк-хуяк и в продакшен, а потом по мере срефакторивания кода и стабилизации кодобазы добавлять типы - причем настолько гранулированные, насколько тебе это нужно, в зависимости от отношения важности кода к имеющемуся времени. Короче, получается, что это одна из самых мощных и определенно самая гибкая система типов на сегодня.dependent types vs refinement types:https://cs.stackexchange.com/questions/21728/dependent-types-vs-refinement-types
>>1095454Для интерпретируемых языков это не слишком-то очевидно.
>>1095012>Интересный у тебя манямир, что еще расскажешь?А с чем ты, собственно, не согласен? >>1094988>Racket (бывший Scheme) проще чем Common Lisp. Нет. Схема - да, проще, хотя скорее бы подошло слово примтивнее, а рекет - переусложненная груда полусырых костылей, прикрученных сбоку на поиграться.
>1095022В достаточной. Из свежего смотри mezzano https://github.com/froggey/Mezzano
>>1095022>>1095536
>>1095498Во-первых, где ты тут интерпретируемые языки увидел? Во-вторых, "объём памяти для используемых выражений и время их работы" - вещь абсолютно ортогональная компилируемости\интерпретируемости.
>>1095535Все уже всё поняли, в следующий раз попробуй потоньше.
>>1095599>Во-первых, где ты тут интерпретируемые языки увидел?Не понял, к чему ты это спрашиваешь.>Во-вторых, "объём памяти для используемых выражений и время их работы" - вещь абсолютно ортогональная компилируемости\интерпретируемости.А пруфы дашь?
>>1095601Правда глаза колет? И ведь насколько у вас, ракетчиков, все плохо, что даже на "толстоту" ответить нечем, сразу начинаются маневры и виляния.
Посмотрел я "Эксперементы Лэйн" и захотел выучить Лисп. Но вот все никак не получается начать, постоянно что-то отвлекает. Расскажите мне, как ахуенно быть лиспером, если не трудно.
>>1095605>Не понял, к чему ты это спрашиваешь.И общелисп, и схема, и кложурь - компилируемые языки. Так что это я не понял, к чему ты интерпретируемые языки вспомнил.> А пруфы дашь? Пруфы чего, блядь? Сложность алгоритмов не зависит от интерпретируемости\компилируемости. Модель работы с памятью не зависит от интерпретируемости\компилируемости. Ленивость\энергичность вычислений не зависит от интерпретируемости\компилируемости. На что тебе пруфы давать?
>>1095607Я не пишу на ракетке.>>1095653Онемеговно!1 Подозреваю, что это "что" называется 2ch.hk. Ну-ка быстро http://www.ccs.neu.edu/home/matthias/HtDP2e/ читать, ле ленись!
*что-то
сиспоебы что за хуйня я открыл книгу после первой главы там ебаный ад, особенно в задачах. она точно для начинающих?
>>1095849>И общелисп, и схема, и кложурь - компилируемые языки.В нативный код? Кложур компилируется в байт-код.
>>1095904Про jit в jvm не слышал?
>>1095907Все равно для запуска кода нужна JVM.
>>1095927Ну и? А что ты ещё хотел от хипстерского препроцессора явы?
>>1095904>>1095927Иди уже читай любой энтри-левел учебник по программированию, раз у тебя "для запуска нужна виртуальная машина" == "интерпретатор". Да и еще все это как-то связано со сложностью алгоритмов и предсказуемостью (де)аллокаций памяти. Либо ртфм, либо задавай конкретные, внятные вопросы, если тебе что-то непонятно. Срать в треде не надо.>>1095903Ну типа, чувак, ЭМ АЙ ТИ, все дела. Какой вуз - такие и первокуры.
А, ну и кстати: есть же компиляторы кложи в сишку. ненужно, разумеется
>>1057101 (OP)https://www.reddit.com/r/Clojure/comments/6treja/help_my_boss_is_forcing_me_to_use_emacs/Ололо.
https://github.com/saniv/text/blob/master/criticism/lisp.md
>>1096324Ну давай разбирать по частям, тобою написанное ))1. Неактуально.2. Отчасти правда, но в выводе все наоборот. Плох не нил паннинг, а путаница между фолсом и нилом. Проблема не в нил паннинге, а в буленах. Нил паннинг - няша, оче удобно и значительно сокращает\упрощает код. Алсо, в той же кложе есть отдельные функции для truthy\falsey и для nil\not-nil. Например, (when foo ...) выполняется, когда foo не нил и не фолс, а (when-some [x foo] ...) выполняется, когда foo не нил. Единственная проблема в том, что этого там не было в первой же версии. Короче - проблема в буленах, а не в нил-паннинге.3. Бла-бла-бла. Все знают, что кл полон хует и говна, неактуально.4. Чувак вообще не в теме. Любой лисп к лямбда калькулюсу имеет такое же отношение, какое современные процессоры имеют к машине тьюринга, так что это максимально дебильный аргумент. Списки не должны использоваться ни для чего, кроме базовых вещей (представления кода, например), так что предложение на основе списков делать интерфейс к файловой системе демонстрирует, что автор - феерический долбоеб. Тот факт, что он называет протоколы кложи "ад-хоковыми костылями" демонстрирует, что он еще и живет в каком-то волшебном манямирке: вообще-то протоколы (они же тайпклассы) - это стандартный подход к полиморфизму во всех современных языках. Гугли expression problem.5. Бла-бла-бла, опять кл-специфичная хуита.6. Бла-бла-бла, опять из той же оперы. Если бы аффтар знал, как появился стандарт кл, то не ныл бы на эту очевидную тему. Особенно доставил пассаж про let - дебил даже не знает, что лет принимает список биндингов, а не только одну пару имя-значение. Что тут вообще обсуждать тогда?7. "doesn't support vector arithmetic" - что за пиздец? Дебил не слышал про то, что можно (барабанная дробь) БИБЛИОТЕКИ ПОДКЛЮЧАТЬ? Это пиздец какой-то, надеюсь, что это толстый троллинг. Про call-by-name тоже смешно пошутил - по его логике получается, что ML - не функциональный язык. Ну и чувак не в курсе, что в кложе (как и в скиме) есть система типов. Пусть говна поест, короче.8. Дебил опять не знает, о чем пишет. Комьюнити кложи - одно из самых helpful среди всех языков, о чем говорят и результаты опросов, и постоянные упоминания этого факта в любом блоге про нее. > GNU/Emacs (an orthodox command line text editor without mouse support or any GUI at all)Ну вот это просто бесподобный перл. Дебил не знает абсолютно ничего о том, о чем он пишет. В каждом предложении factually wrong утверждения.В итоге имеем только один пункт, который указывает на реально существующую особенность\проблему, но и тот с хуевым анализом.Вердикт: толстый троллинг. Автор - дебил и ест говно. Подозреваю, что его назвали ретардом на #lisp, и оттого он высрал эту блевотину. Уноси нахуй.
> Nikita Sadkov> Self-taught IT PhilosopherСука, лол. Все, понял. Оценил.
>>1096353>всерьез воспринимать золотцеНу чего ты, ну?
>>1095849>Сложность алгоритмовТы про асимптотику зависимости размера требуемой памяти или времени вычисления от некоторого размера входных данных? Но я не об этом. Далеко не всегда бывает достаточно (для системного программирования) ясно сколько памяти в какой момент потребует наличие нек. выражения в программе или сколько времени займёт его вычисление (особенно в условиях GC).
>>1096354>>1096382О нихуя, я думал он уже помер.
>>1096112>Либо ртфм, либо задавай конкретные, внятные вопросы, если тебе что-то непонятноКонкретный вопрос: как скомпилировать без линковки со стандартной либой ecl? Если возможно, то как скомпилировать под винду c gui sybsystem? Что бы консоль не выскакивала постоянно. Если я использую сторонние либы (ql:quickload "abc"), как это все скомпилировать в один бинарник? Все вопросы подразумевают использование ECL.
>>1096452>как скомпилировать без линковки со стандартной либой ecl? Статически чтоль? Читай тутhttps://common-lisp.net/project/ecl/static/ecldoc/Extensions.html#Compiling-with-ASDF>>1096452>Если возможно, то как скомпилировать под винду c gui sybsystem?Точно можно, ловсанчик даже с сбцл такое проворачивал. Но как - не подскажу, шиндовса не знаю. >Если я использую сторонние либы (ql:quickload "abc"), как это все скомпилировать в один бинарник? Указываешь зависимости в определении asdf-системы и компилишь. Читай выше.
>>1096382Я в урл не смотри @ в тред отвечай. Ну и все равно полезно.
>>1096405> Модель работы с памятью не зависит от интерпретируемости\компилируемости. Ленивость\энергичность вычислений не зависит от интерпретируемости\компилируемости.
У меня в конторе пара коллег пилят внутренние проекты на PicoLisp-e. Если кому интересно, то вот https://picolisp.com/wiki/?home ознакомление по пике. Ещё рекомендую читануть https://habrahabr.ru/post/177791/ .
>>1100712А не пиздишь ли? Что-то очень слабо верится, что кто-то на этом наркоманском поделии пишет, кроме самого автора.
>>1100712Вот я честно говоря присоединяюсь к анону выше. Ну то есть я не вижу ничего особо невероятного в том, что кто-то пилит внутренние проекты на том, на чем хочется, но... ЗАЧЕМ?! Пиколисп и вправду какой-то наркоманский.
>>1100712>У меня в конторе пара коллег пилят внутренние проекты на PicoLisp-e. Если кому интересно, то вот https://picolisp.com/wiki/?home ознакомление по пике. Ещё рекомендую читануть https://habrahabr.ru/post/177791/ . >На практике, компилятор усложняет систему в целом. Такие особенности, как стратегии множественного связывания, типизированные переменные и макросы были разработаны для удовлетворения нужд компиляторов. Система получается раздутой, потому что она должна поддерживать также и интерпретатор, и соответственно, две различные архитектуры.L O LOL
>>1100760Да, на нём пишут какую-то веб-хуйню и написана внутренняя вики.>>1100812Да, язык наркоманский, на нём в мире пишет довольно мало людей - но значит ли это, что язык плохой, не знаю. Я даже более скажу, его хотят портировать под Эльбрус и какую-то хуйню пилить для Эльбруса же.
>>1096112>Иди уже читай любой энтри-левел учебник по программированию, раз у тебя "для запуска нужна виртуальная машина" == "интерпретатор".Ну давай расскажи как запускать файлы .java без JVM, JRE.
>>1100845А тебя-то что сподвигло о нем написать? Имеешь положительный опыт использования?
>>1100895JVM не запускает "файлы .java"мимо капитан
>>1100895И, кстати, если спроецировать твои суждения на, например, сишку, то окажется, что она тоже интерпретируемая, потому что x86 не выполняет непосредственно инструкции, а интерпретирует их с помощью низлежащего ядра.
>>1100836Ну, в гринтексте все правильно как бы написано, в чем лол-то? Ты никогда не писал компиляторы?>>1100845Ну то есть профит в том, что там оче маленькое ядро и нормальный апп-сервер с хттп-стеком искаропки? Я бы, конечно, не рискнул все-таки такое брать и все поддерживать самому, но раз ребятам нравится и это решает их проблемы - почему бы и нет, угу.>>1100895Во дебил. Хуль ты из своего пхп-треда вылез?
Кто-нибудь знает emacs lisp? Хочу получать из такого списка:> (list :one 1 :two 2)Элемент 1 по ключу :one. Как мне это сделать правильно? Пока в своем коде просто наговнокодила такую штуку:>(defun get-my-elem (key list)> (let ((pos (cl-position key list)))> (when bound-and-true-p pos)> (nth (+ 1 pos) list))))Но выглядит это как-то неправильно. Такой список мне выдает org-element-at-point, и почему это не property list / association list я не понимаю. Но факт остается фактом -- это просто сраный список.
>>1101244(getf '(:one 1 :two 2) :one) => 1(getf '(:one 1 :two 2) :cat :nothing) => :nothing
>>1101236>Ну, в гринтексте все правильно как бы написано, в чем лол-то? Ты никогда не писал компиляторы?Ты прикидываешься шизиком, или серьезно?ЛОЛ в том, что типизированные переменные, и маркросы, были разработаны вовсе не для удовлетворения нужд компилятора, а для удовлетворения нужд человеков по написанию программ.Внезапно, это компилятор вынужден с типизацией ебатся, проверяя ее, оно ему нужно?
>>1101244Ты тян и имаксер? Саша?!
>>1101236Да, там маленькое ядро, Бургер язык за год смог переписать с С на асме. При этом, он довольно шустрый насколько я понял. Я бы может тоже его поизучал, но сперва хочу с хаскелем разобраться
>>1100973>>1100975>>1101236Без JVM не скомпилируешь .java файлы. Без JRE не запустишь результат компиляции.
>>1101443Вполне себе скомпилируешь, есть компиляторы жавы и не на жаве.
>>1057101 (OP)Программист на пайтоне.Бросил, перечитываю сисп, планирую укатываться в лисп. Какие подводные? Лисп за жизнь в глаза не видел (почти).
>>1101811>Какие подводные? Потом не слезешь.>сиспТо вводные лекции в программирование, а не про лисп. PCL читай, On Lisp.
>>1101815>Потом не слезешь.Все, спасибо. Пойду выбирать себе лисп.
>>1101816Не читай PCL и On Lisp. Ну разве что вторую можно прочитать для общего развития, а первую даже не открывай. Алсо, имей в виду, что Common Lisp уродлив и мертв, он тебе не нужен. Если хочешь теории и для души - бери схемку (plt racket), если хочешь пилить распределенные опердени на реакте с аи и бигдатой - бери clojure\clojurescript.
>>1101295Типы изначально были придуманы для того, чтобы компилятор мог знать, куда сколько байт сувати. Собственно, в каком-нибудь llvm и ко они и сейчас для этой цели используются.Макросы, очевидно, не нужны в полностью интерпретируемом языке. Подумай, почему (перед этим удостоверься, что знаешь, что такое макросы).Да, нужно. Ты никогда не писал ни одного компилятора. Возвращайся в свой пхп-тред с таким аттитьюдом.>>1101439Вообще, по идее для таких штук у нас должны быть форты, но хуй знает, на них только совсем уж низкоуровневую хуиту пишут. Хотя по замыслу он как раз должен быть таким же, как этот пиколисп - "высокоуровневый низкоуровневый ЯП", лол.
>>1101848>Да, нужно. Ты никогда не писал ни одного компилятора. Возвращайся в свой пхп-тред с таким аттитьюдом.Вот тебе нитка и иголка. Зашивайся.>Макросы, очевидно, не нужны в полностью интерпретируемом языке. Подумай, почему (перед этим удостоверься, что знаешь, что такое макросы).> полностью интерпретируемом языкеЭто пушка.Мамин разработчик компиляторов. Скажи-ка, чем интерпретация отличается от выполнения бинарных инструкций процессором?>Макросы, очевидно, не нужны в полностью интерпретируемом языкеКак в PHP и JS? :))))))>Типы изначально были придуманы для того, чтобы компилятор мог знать, куда сколько байт сувати.Ну раз ты скозал, то ладно тогда.А может быть дело в том, что типы данных неотъемлемая часть информации как явления в нашей реальности?Конечно нет, это все из за компиляторов, такой авторитет как ты не может ошибаться. )))))
>>1101843О, а вот и сектанты подоспели.>Не читай PCL и On Lisp. Ну разве что вторую можно прочитать A PCL-то тебе чем не угодил? По-моему неплохое практическое ознакомление с лисп-вэем, с интерактивной разработкой и т.д.>что Common Lisp уродлив и мертвМожет быть, лет с десять назад и был некоторый застой в сообществе из-за высокого порога входа, но с появлением quicklisp'а оно заметно оживилось.Уродлив ли? Ну, имеются некоторые архаизмы от старых диалектов, но их давно напрямую никто не использует, и в этом не возникает необходимости, потому что тут же имеются и современные альтернативы. Как, например, универсальный setf заменяет все setq, rplac{a,d} и прочие. К тому же, существуют проекты по реорганизации о осовремениванию стандартной библиотеки. Но это пустяки по сравнению с уродствами clojure, которые она добровольно унаследовала от джавы ради интеропа. Как препроцессор для джавы она, может быть, и не плоха, но это не полноценный язык (inb4 не баг, а фича) и только лишь одна платформа одна у кложи и одна у её брата - кложескрипта.
>>1101859>чем интерпретация отличается от выполнения бинарных инструкций процессором?Иди почитай, что такое "компиляция". Потом возвращайся в свой пхп-тред. Свободен.>>1101879Мы не сетанты, мы прагматики, лiл.> A PCL-то тебе чем не угодил?Понимаешь, когда обычный человек увидит целую главу про ненужный и кривой loop, он скорее всего все бросит, убежит в страхе и больше никогдане будет трогать лишпы. Ну и в целом книжка не про лисп-вей, а про коммонлисп-вей. Там оче много хаков, плохого кода, оче мало функциональщины, ну и в целом он не прививает хороший стиль написания кода (особенно по части макросов).> с появлением quicklisp'а оно заметно оживилосьСогласен. Ладно, может быть насчет "мертв" я переборщил, но это смотря с чем сравнивать а все мы понимаем, с чем нынче кл надо сравнивать.> реорганизации о осовремениванию стандартной библиотекиВот когда эти проекты станут дефолтом (как в том же окамле) - тогда и можно будет советовать кл начинающим. Сейчас он их только отпугнет и испортит впечатление о лишпах вообще.> которые она добровольно унаследовала от джавы ради интеропаЧувак, извини за прямоту, но по твоему посту угадывается, что ты ничего не писал на кложе и элементарно нихуя с ней не знаком, так что я не вижу смысла устраивать холивар кл вс клж.Особенно учитывая, что мой пост не про одну кложу был. Я там вполне конкретно написал, что куда, и возражений по этой части у тебя, как я понимаю, нет:> Если хочешь теории и для души - бери схемку (plt racket), если хочешь пилить распределенные опердени на реакте с аи и бигдатой - бери clojure\clojurescript.
>>1101920>Иди почитай, что такое "компиляция". Потом возвращайся в свой пхп-тред. Свободен.У тебя шизофрения вперемешку с комплексом наполеона.
>>1101921Держи в курсе, спасибо за бампы.
>>1101920>Там оче много хаков, плохого кода, оче мало функциональщины, ну и в целом он не прививает хороший стиль написания кодаВот уж не помню, плох ли там, хорош ли был код, но значения это не имеет. Главное, что показан метод решения проблемы при тесном взаимодействии с реплом и что за зверь эти лиспо-макросы и насколько они далеки от макросов сишного препроцессора. А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.Что до статьи про loop, я даже не поленился открыть её, полистать. Ничего там такого страшного нет. Единственное, что какого-нибудь озабоченного чистотой хаскелиста можно спугнуть, хотя я и сам таким был, но, как видишь, меня это не остановило.>Вот когда эти проекты станут дефолтом (как в том же окамле) А где они стали дефолтом? В официальном руководстве до сих пор та же хуёвая стдлиб, что и была. ExtLib, судя по дате последнего изменения, ещё не уступил место janestreet, значит и де-факто никакого дефолта нет.>но по твоему посту угадывается, что ты ничего не писал на кложеДа, непродолжительного знакомства мне хватило. Писать на какбы-лиспе с жавой в уме, которая и на минутку не позволяет о себе забыть, немного утомительно. Чуть что - у вас тут жава, товарищ, лезь в жавадок, читай, дергай методы напрямую (Трустори, кстати. Я немного прихуел, когда неоднократно на SO лучшее, что предлагали для решения каких-то пустяковых проблем, было использование потрохов жавы), а пока держи стектрейс вместо дружелюбных перезапусков. А лиспификацией библиотек - тех необъятных сокровищ jvm, из-за которых весь сыр-бор - никто даже и не думал себя утруждать, и практически любой код сложнее факториала выглядел как нелепый суржик. Думаю, и сейчас мало что изменилось, ведь идиоматика у лиспа и явы слишком разная, и привести одну к другой - задача довольно трудозатратная. Ну и ещё одна значительная причина - как живая программируемая среда кложа откровенно слабее общелиспа, очень не хватает вместо исключений сигнального протокола с перезапусками, гибкости и динамичности CLOS'а объектной системе и т.д. по мелочам. Кложескрипт я даже и щупать не стал, увидев там тот же суржик. Да и на кой он нужен, когда есть более однородный и приятный Elm?>Особенно учитывая, что мой пост не про одну кложу был.А про другое я и писать не стал, потому что ты и сам её охарктеризовал как с практической точки зрения бестолковую платформу, годную лишь на поучиться по сикпу студентам да побаловаться ностальгирующим.
Палю годноту: https://www.lights-of-holiness.eu/android/Примечательно не только как пример приложения на общелиспе под ведроид, но и, собственно, как средство разработки на андроиде. Сванк из коробки, квиклисп тоже.Пришлось очень кстати, когда понадобилось напедалить скриптик на лопате.
>>1102126>Вот уж не помню, плох ли там, хорош ли был код, но значения это не имеет.Ну нихуя себе предъявы. У нас с тобой значит абсолютно разное мировоззрение - я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.> показан метод решения проблемы при ...Ээ, ну так про это есть еще сотня (более лучших) книжек и миллион блогпостов, зачем из всех альтернатив выбирать именно хуевую? Синдром утенка, не?> А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.Ну кривишь ты душой. Не верю, что ты в это веришь. Если человек читает хуевый код, то он (с большой долей вероятности) и будет писать хуевый код, ну.> Ничего там такого страшного нет....кроме собственно (ненужного, кривого) loop'а.> А где они стали дефолтом?В окамле</autism-mode>. Ну ладно, у них не один дефолт, а целых три, но афаик все разумные люди пользуются Core, и емнип в real-world ocaml используется он же. Так что де-факто дефолт как раз есть (https://www.reddit.com/r/ocaml/comments/665w26/which_standard_library_is_the_best/).> Да, непродолжительного знакомства мне хватило.Ну так а нахуя ты осуждаешь, если не читал?> с жавой в умеBy design. Лучше держать в уме жаву (которую энивей знает любой разработчик из того домейна, на которую рассчитана кложа), чем разбираться в новой платформе, которой - спойлер! - и нет нихуя, ибо вместо платформы полторы либы без доков, которые никто не поддерживает. Я утрирую, но ты знаешь, что это так.> лиспификацией библиотекСамое идиотское времяпрепровождение, которое можно себе придумать. Тебе шашечки или ехать?> идиоматика у лиспа и явы слишком разнаяУ какого "лиспа"? У "лиспа" нет никакой идиоматики, лисп - это просто скобочки. Никто ведь не говорит об "идиоматике алголоподобных языков", имея в виду пюре си, кресты и сисярп, ну. Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity. Джава на эту идиоматику ложится идеально, жаваскрип - чуть хуже, но тоже норм. В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".> очень не хватает вместо исключений сигнального протокола с перезапускамиСогласен, эксепшены сосут, у стектрейсов сосешь сам. Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.> гибкости и динамичности CLOS'а объектной системеА вот тут не уверен, что согласен. Приведешь конкретный юзкейс?> Elm?на кой он нужен, когда есть более мощный и прагматичный clojurescript?> ты и сам её охарктеризовал как с практической точки зрения бестолковую платформуНу нет, я такого не говорил. Я лишь указал на тот юзкейс, где она показывает себя лучше всего. Слышал про примеры ее использования, вроде все были довольны, так что у меня нет оснований говорить, что она вообще непригодна для практики.Короче, у меня пока сложилось о тебе впечатление как о хейтере, который не писал\не разобрался, но на основании каких-то косметических штук сделал вывод, что НЕ НРАВИТСЯ. Ирония в том, что это типичный аргумент лиспохейтеров вообще - СКОБОЧКИ НИПАНЯТНА НИНРАВИЦА. А мы все тут все-таки посвященные, лол, должны понимать, что зрить надо в корень, а не на скобочки. Как-то так.
>>1102361>и емнип в real-world ocaml используется он жеКонечно, что ещё может посоветовать janestreet, кроме своего core?>Так что де-факто дефолт как раз естьТаки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.>я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.Снова не поленился, полистал PCL. Где ты там хуевый код увидел? Да, есть немного неестественные примеры, но, очевидно, они такие, чтобы не переусложняя код показать в действии, например, те же макросы.>Синдром утенка, не?Не. Я просто знаю, что важные с моей точки зрения аспекты в ней рассмотрены правильно, потому и советую. А изучать альтернативы у меня нет ни интереса, ни времени, ни желания. Тем более, что ни одна из "сотен" озвучена не была.>> лиспификацией библиотек>Самое идиотское времяпрепровождение, которое можно себе придумать.Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть? Как такого вообще на кложу-то занесло? Я бы не удивился, услышав такое от жава- или го-кодера, но не от лиспера. Хотя кложуристы...>Ну так а нахуя ты осуждаешь, если не читал?Пробовал и делюсь своими впечатлениями. И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.>By design.>Лучше держать в уме жаву>Протекающие by design абстракции, семантика с двойным дном - так несомненно лучше, именно так мы избавляемся от сложности (которая complexity)!Дяденька, а вы точно не сектанты?На самом деле, лучше писать на полноценных языках и не держать низлежащую платформу в уме, пусть этим занимается компилятор. Вот казалось бы, второе десятилетие XXI века, время всяких MASM'ов давно прошло и тут бац! - появляется кложура. И что с этим миром не так?>У какого "лиспа"?Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.>В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".Ну, судя по тому, что мы сидим в одном треде, и ты посоветовал человеку, заинтересовавшемуся лиспом, кложу и схему вместо общелиспа, они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.>Джава на эту идиоматику ложится идеально,Хочешь сказать, всякие абстрактные фабрики фабрик, фасолины и прочие вынужденно причудливые формы проявления инженерной мысли жава-архитекторов не будут инородными/неидиоматичными в кложе, где мало того, что едсли, макросы, функциональщина, иммутабельность во все поля, так ещё и динамическая типизация, упраздняющая львиную часть паттернов?>Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity.Это слоган, а не идиоматика.>Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.Что ж ты не на жаве/жс тогда пишешь? Ммм?
>>1101481Так какая разница, всё равно же нужен как минимум компилятор.
>>1101879>Может быть, лет с десять назад и был некоторый застой в сообществе из-за высокого порога входа, но с появлением quicklisp'а оно заметно оживилось.Примеры Common Lisp в продакшене есть, в СНГ? Даже на Clojure пишут в СНГ, и вакансии периодически появляются, но про использование CL не слышал.
>>1102652>Примеры Common Lisp в продакшене есть, в СНГ? Гугли Grammarly
>>1102577>Конечно, что ещё может посоветовать janestreet, кроме своего core?При чем тут это? Стандартная книжка советует стандартную библиотеку. Мне кажется, этот вопрос закрыт.> Таки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.Ну а я сомневаюсь, что хотя бы 10% продакшн аппликейшенов не зависят от кора. Цифр нет ни у тебя, ни у меня, так что к чему гадать-то?> Где ты там хуевый код увидел?На 18 странице.>>Синдром утенка, не?>Не.>изучать альтернативы у меня нет ни интереса, ни времени, ни желанияНу как скажешь.> Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть?Нет.> Как такого вообще на кложу-то занесло?Потыкал CL, переехал на схемку, начал пилить одну штуку, понял, что либ нихуя нет, а потом увидел того кудрявого симпатяшку и все заверте...> И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.У тебя в первом же посте фактические ошибки - про платформы, например.> Протекающие by design абстракции, семантика с двойным дномПримеры первого и определение второго в студию.> не держать низлежащую платформу в уме, пусть этим занимается компиляторМного ты браузерных аппов написал, не держа браузер в уме? inb4: ни одного, я не такой> Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.Ну тогда озвучь, в чем состоит эта "идиоматика лиспа".> они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.Ну, вообще-то далеки. И при чем тут "в сравнении с жавой", если я говорю о том, что вообще в принципе не надо пиздеть о том, в чем не шаришь, ну?> Хочешь сказать ...Эм, тебя кто-то заставлял писать фабрики фасолин на кложе?> Это слоган, а не идиоматика.Определение в студию.> Что ж ты не на жаве/жс тогда пишешь?Эм, и на них тоже пишу разумеется. Странный вопрос.
>>1102631А интерпретатор джавы тебе Аллах написать запрещает?>>1102734https://www.grammarly.com/jobs/engineering/software-engineer-internal-tools?gh_jid=915433> You will write a lot of Java code.Проиграл легонечко. У них есть вакансии на эфшарп, тайпскрипт, джаву и датапитоны. Единственная снг-вакансия, где упоминается CL, выглядит как-то так:> Extensive expertise in at least one functional programming language (e.g., Clojure, Common Lisp, Haskell, Scala, Erlang).> Experience writing for the Java Virtual Machine.То чувство, когда даже та компания, которую ты приводишь как пример кл в продакшне, ставит кложу перед кл в своей вакансии, лiл. Слава Украине!
>>1102809Блог почитай, у них основная часть на CL
>>1102892Основная часть на CL, а вакансия - на Clojure. Переписывают небось?
>>1102931Ну, нужно же кому-то и веб-парашу пилить, пока лиспогоспода заняты NLP.
>>1102938Веб-параша у них на тайпскрипте с чем-то, Акелла опять промахнулся.Так что, переписывают небось?))
>>1102931Жопочтец, плз, вакансия на "любой ФП-язык", потому что имея представление о ФП CL начать использовать 0 проблем.
>>1103531>>1102809
>>1103531Я люблю ФП и Лисп, но CL мне не нужен, не нравится. Возможно он хорош как язык. Возможно там крутая экосистема. Но я этого не знаю, а как узнать непонятно, на нем никто не пишет, нет примеров. Лучше на Clojure писать. Ну или на рэкете.
>>1103531Почему Пол Грэм не советует больше использовать CL, а советует Clojure? Наверное он что-то знает.
Почему у SBCL на гитхабе всего 761 звезда? Его что используют только 761 человек. Или остальным лень звезду поставить. У Clojure 6811 звезд, у Racket 2225. Делаем выводы о популярности CL.https://github.com/sbcl/sbclhttps://github.com/clojure/clojurehttps://github.com/racket/racket
>>1103774Щас бы по звёздочками судить...Однажды я увидел "библиотеку", которая просто предоставляла настраиваем индикатор прогресса для айоси. У нее было 10k+ звёзд, говорит ли это что она хорошая? Она выполняла свои задачи, но в ней не было ничего особенного, любой вменяемый специалист сделал бы такую же за пару вечеров.
>>1103803https://twitter.com/paulg/status/728831131534024704?lang=enАСТАНАВИТЕСЬ
Алсо, ожидаю твоего ответа на этот пост:>>1102806Спойлер: его не будет.
>>1103809Та мне самому кложа нравится, я мимо проходил, на звёздочки тригернулся.
>>1103817А, сори тогда. Мисфайр.
>>1103803Количество звёзд говорит о количестве пользователей. Под IOS пишут сотни тысяч или даже миллионы, поэтому 10к звёзд. SBCL пользуется только несколько тысяч, поэтому всего 761 звезда. Мало пользователей -> плохая поддержка -> мало информации -> мало библиотек. Всё это можно определить по количеству звёзд.
>>1103822Разница в сообществах. Это те, кто под айос пишут, привыкли ставить лойсы налево и направо, я, например, решительно не понимаю, какой в них смысл, особенно касаемо таких общеизвестных проектов как sbcl. Действительно сопереживаешь проекту - помоги кодом, а свой апатичный лойс можешь себе в анус засунуть.
Насколько дольше программы на кложей пишутся в отличие от питона например?
>>1104134>НасколькоРовно на тормоза джявы
>>1104136А причем тут тормоза джавы? Я же про скорость разработки спрашиваю.
>>1104143Ты из тех, кто программирует на листочке?
>>1104147Что ты имеешь ввиду?
>>1104173Даже когда на сишке пишешь, тебе приходится взаимодействовать с инструментарием: компилировать, отлаживать, а на кложе - тем более. Нормальный процесс разработки на любом лиспе - это тесное общение с реплом.
>>1104177Я понял что ты имеешь ввиду. Теперь можешь на вопрос ответить плз?
>>1104184Перый пост.
>>1104187А ты давно пишешь на кложе?
>>1104188С самого её появления, естественно
>>1104134Почему выбрал именно ее, а не scheme или common lisp?
>>1104191Нифига ты олдфаг. Не думал, что встречу такого в треде. Тогда подскажи плз, стоит ли вкатываться в кложу или лучше выбрать другой яп. Сам пишу на жсе уже полгода, но он меня доебал. После работы пробую другие яп, но что то не могу выбрать. Пробовал питон, го, эликсир и жабу. Первые два вроде норм зашли, эликсир больше всех понравился, а давайте больше всех не понравилась. Правда я на каждом из них написал простенький круд. Думал может кложа зайдет.>>1104193Наверное из за того что кложа на слуху.
>>1104200>а давайте больше всех не понравиласьТ9? В таком случае, боюсь, кложу ждет та же участь, потому что она как хостед язык неразрывно связана с жабой.
>>1104200>Сам пишу на жсе уже полгода, но он меня доебал.Попробуй кложескрипт
>>1104205Мне надо будет писать на жаве?>>1104207Мне хватает фронтэнда на работе. Лучше расскажи что меня ждёт если я выберу кложу.
>>1104214>Мне надо будет писать на жаве?Ну какбэ язык для того и создавался.
>>1104134Быстрее же в общем случае. Но это зависит от задачи, разумеется. Обычную вебню быстрее будет накидать на рельсах\джанге, просто потому что под них больше кода написано, хуяк-хуяк подключил и все работает. На кложе обычно пишут либо бэкенды, либо сервисы для рич клиент аппов.>>1104200Таки попробуй кложескрипт, раз у тебя опыт есть. Глядишь и на работу его притащишь, профит же. Или ты именно укатиться из фронтенда хочешь? Или ты просто для общего развития ее учить хочешь? Конкретизируй запрос, короче.>>1104214>что меня ждёт если я выберу кложу.Кокаиновые дорожки и шлюхи в гамаках, очевидно же.>>1104177>>1104136>>1104297Блядь, тебя обоссали уже, токсичный, так что уткнись, ок? Иди в другом месте толсти и воняй.
>>1104307Ты чего нервный такой, что готов с пеной изо рта защищать предмет своего обожания? С кокаином перебрал?
>>1104323Я отвечаю на вопросы, а ты срешь в треде и всем мешаешь. Прекрати, now.
>>1104371Да-да, я всё понял. Извини, что мешаю втюхать новичку яву в овечьей шкуре и затянуть в свою секту. Не знал, что для тебя это так важно.
>>1104386> коммонлишпер, хейтящий все, кроме коммонлишпа, называет кого-то сектантом
Такое дело, посоны. Я знаю только Ruby и JS. Решил для общего развития освоить что-то из функциональщины. Выбор пал на Erlang/Elixir, и сейчас я в процессе освоения. Но вот вдруг почему-то захотелось Clojure. И наверное он станет моей следующей целью. Возникло два вопроса:1. Главный. Знание Erlang позволит мне осилить Clojure быстрее, или это никак не связанные вещи?2. Набор из Ruby, JS, Erlang(скоро), Clojure(в перспективе), Java(в перспективе) это норм? и не слишком ли я раскатал губу?
>>1105841Замени жаву на Haskell и будет норм.
>>1105912Ага, а ещё js на typescript и clojure на ocaml
>>110584>>1105912Ruby я зарабатываю сейчас, знание Java для карьеры будет не лишним в любом случае. Erlang- вроде и функциональщина т.е. возможность расширить кругозор, а там мало ли, может за это езе и платить будут. Clojure- раз уж уже знаю(буду знать) один функциональный язык, то наверное относительно несложно выучить еще один(вот не проебался ли я в этом моменте?)
>>1105933Если кложу собираешься изучать исключительно как функциональный язык для расширения кругозора, то она, будучи гибридным языком, тебе ничего нового не откроет, рекомендую не тратить время и сразу переключиться на хаскель.
>>1105954Не проебался ли я начав для расширения кругозора изучать Erlang? (хотя с ним есть робкая надежда на относительно высокооплачиваему работу)
>>1105954Сам я нуб зеленый, но слышал, то мол кложа это относительно сложно и немейнстримово, типа хаскела, но для тех, кто хаскел считает попсовым... так ли это?
>>1105972>Не проебался ли я начав для расширения кругозора изучать Erlang?Однозначно нет, эрланг интересен применением модели акторов.>>1105977Ну, на самом деле, и в хаскеле нет ничего сложного, есть лишь непривычность, которую на первых порах нужно преодолеть, и пугающие новичков своим названием монады, в которых на самом деле нет ничего страшного или сложного.>мол кложа это относительно сложно и немейнстримовоА в кложе тем более ничего сложного, тот же руби но со скобками.
>>1106002Бро, а если хочется почувствовать себя умным и нитакимкаквсе, что учить?
>>1106043Для этого ничего учить не надо.
>>1106045Ладно, перефразирую. Нужно что-то типа "я модный, стильный и крутой, я знаю Хаскел", но при этом наверняка же есть что-то относительно свежее и относительно хайповое для тех, кому хаскел излишне попсовый
>>1106002В плане переспектив поиска работы Erlang актуален, или новомодный Elixir лучше? И, чтобы уж не совсем оффтоп, то как обстоит с этим дело в этих ваших лиспо-кложах?
>>1106047PureScript/Agda/Idris?
>>1106047Какой-то ты слишком зеленый.>>1106049Не на том фокусируешься, главное - твои умения и опыт, а язык - дело десятое, при необходимости всегда можно доосвоить.>В плане переспектив поиска работыПерспективы сильно зависят и от личных качеств: некоторые, знаешь, на меинстримных языках работы найти не могут, а некоторые умудряются на собственных языках за деньги программировать. Кто ищет - тот найдет .
>>1106063На умении и опыте я фокусируюсь в том, что меня кормит. А хочется еще какой-то язык "чиста попонтоваться"
>>1106100Тогда Эликсир, в нём и в базы лазать удобнее и синтаксического сахара завезли.Вакансий на них нет, а все эти Иви с ТиВиЗаврами — стаи бомжей, которым видите ли похапе чем-то там не угодил.
>>1106100Ты тредом ошибся
>>1106107Так я и хочу начать с erlang а потом переползти на Elixir, или первый шаг в таком слчуае нахер не нужен?
>>1106140Ты вкатись сначала, а потом глупые вопросы сами отпадут.
>>11058411. Да, знание одного любого функционального языка поможет освоить все другие функциональные языки.2. Непонятно, в чем вопрос. Алсо непонятно, что ты подразумеваешь под "набором". Если у тебя на всех этих языках будет опыт в продакшне - то да, очень норм.
>>1106047Clojure, Elixir. Кложа хайповее, ибо clojurescript-флукс-реакт-нейроночки, больше перспектив.>>1106063Вот этого двачую.
>>1106140erlang и так мало кому нужен, а чем дальше тем нужен еще меньше, полумертвый
>>1106409У нас тут лисп обсуждается, вообще-то. Тред трудоустройства в другой стороне
>>1106409Так его ж ради отп тыкают.
>>1106410ну замени в моем посте erlang на lisp
>>1106561И что это за язык такой - "lisp"?
Шапку бы, чтоль, оформили. Литература там, чем интерпретировать, вот это все.ньюфаг
>>1110791Вечером запилю.
>>1110791Была шапка, но её успешно проебали.
>>1111117> проебалиУ меня схоронено — http://rgho.st/8cXrnsnpQХотел так запостить, но там слово из спам-листа.
>>1111120Свободное, блядь, общение.Но с другой стороны, это повод её подчистить. А может и переписать даже.
https://pastebin.com/0tBCv2BiКажется, там ещё что-то про библиотеки было. Можно это добавить https://github.com/CodyReichert/awesome-clСреды разработки, думаю, можно повыкидывать нахуй, оставить емакспо одной. https://portacle.github.io/
>>1111162Что здесь делают Tcl, Clojure и прочие не-лиспы?
>>1111169Ты опять выходишь на связь? Может уже перестанешь срать в треде?
>>1111169Чем это Tcl - не лисп? Ммм?А вот недоязычкам вроде hy, lfe, clojure действительно нечего делать в шапке.
>>1057347какой смысл просто читать? не прорешал упражнений - ничего не понял
>>1111181диванный теоретик
>>1111169> 20:11:26 >>1111170> 20:13:43 М-м-мнгновенное возгорание. Ты тут круглыми сутки караулишь, как бы кто чего плохого про кожуру не написал?
>>1111335А я про Clojure ничего плохого и не сказал даже, просто это не LISP.>>1111174Tcl это Tcl, а LISP это LISP.Если хотите, можете обозвать тред "LISP и LISP-like", но тогда сюда можно много язычков запихнуть, вплоть до рубятины, LISP-like понятие весьма растяжимое.
>>1111336Да не обращай внимания, это наш местный кложесектант, бурно реагирует на любое высказывание, касающееся его предмета поклонения.
>>1057101 (OP)У LFE, вообще, есть будущее или это просто хобби проект, который не расчитан на серьезное применение? Сейчас въезжаю в Elixir. Но думаю, может еще с LFE заодно познакомиться?
>>1111338Какое вообще может быть будущее у проекта, цель которого - просто сменить надоевший синтаксис?То же касается и элексира.
>>1111339У Эликсира синтаксис-то гораздо приятнее Эрланга будет.
>>1111352Скорее не приятнее, а привычнее. Рубистам.В любом случае, сути это не меняет. Подобные косметические проекты, наверное, только в мире жс приживаются.
>>1111335Листал нулевую, увидел, ответил. Под кроватью у себя жидорептилоидов поискать не забудь.>>1111336>просто это не LISP.Какие ваши доказательства? Ты точно знаешь, что такое лишпы? Я еще понимаю, если кто-то про тикль решит поспорить, но вот это выглядит как чистой воды троллинг или дилетанство.>>1111338Если с практической точки зрения сравнивать elixir и lfe, то сравнение будет явно не в пользу последнего, увы.>>1111355Есть мнение, что эликсир уже сейчас популярнее и более widespread, чем эрланг, но это не точно.
>>1111352Если ты смузиёб - то да. А мне как хаскелозадроту erlang кажется в разы красивее.
>>1111516>widespread"Распространеннее" это называется. Учи русский, быдло.мимо листал
>>1111543Не видишь что это смузиёб рубиновый?
>>1111543Длинное, неудобное слово. Ретрограды ненужны.>>1111544Шизик?
>>1111545>Длинное, неудобное слово.Это уже проблема неуклюжести твоего мыслеизложения.
>>1111547Гхм, так я это слово как бы не использовал, привет.
Как вкатиться в кложу, если ты студент, которого 3 года подряд дрочили ООП?
>>1111696Берешь и вкатываешься, порешать задачки что бы почувствовать синтаксис и способы его использования
>>1111696>которого 3 года подряд дрочили ООП? А чего ты боишься-то? Подкложурной явой тебя уже не напугать, а больши ничего страшного там и нет.
>>1111754>большиО господи, как я это мог написать?!
>>1111696Если тебя действительно дрочили ООП, то ты уже должен знать его область применимости и слабые места, а потому тебе это будет только в плюс.https://www.braveclojure.com/+http://www.4clojure.com/Вопросы задавать тут:http://clojurians.slack.com/https://clojureverse.org/https://groups.google.com/d/forum/clojureНу и на фриноде.Из ООП-головного-мозга-специфичных подводных камней: не создавай рекорды на каждый чих. Для начала вообще забудь, что есть рекорды, и используй только плейн мапы. Забудь про объекты, все есть данные. Просто берешь и хуяришь мап. Алсо, используй namespaced keywords.По части управления состоянием и DI - кури https://github.com/stuartsierra/componentПо части ORM - кури https://www.hugsql.org/По части интерфейсов - кури https://github.com/Day8/re-frame
Емакс каким то сложным и непонятным кажется. Может стоит другой редактор попробовать? Или стоит все таки с емаксом разобраться?
>>1112009Ничего другого нет. Если ещё этого не сделал, возьми преднастроенный spacemacs, с ним легче будет
>>1112010Ну я пока читаю книгу по кложе и тут вроде есть готовый плагин для емакса.
Но легче от этого не становится.
Я пишу в голом саблайме с подсветкой, полет нормальный.
>>1112009Для IDEA есть мега охуительный Cursive, он прям 10 из 10, получше имакса потому что иде, но жрет дохуя. Из редакторов кроме имакса только в атома еще какая-то поддержка была, ну и куча кложура-онли недоредакторов.Так что у тебя два стула.
>>1112168>полет нормальный.Тебя в книжке разве не учат разрабатывать с активным взаимодействием с реплом? Если нет, то это явно хуевая для начала книжка.Да и вообще, если игорировать одну из основных фишек лиспа, какой смысл вкатываться?
>>1112189Леинингеновский REPL параллельно в консольке.
>>1112009Cursive, nightcode, light table, тысячи их. Для любой иде и любого редактора (от эклипса до атома) есть годные плагины. Если у тебя нет цели разобраться с имаксом, то не трать время на то, чтобы разбираться с имаксом.
>>1112173>получше имаксаСлышь, поц, за базар отвечать будешь?
>>1112220И что, ты туда весь код вручную копировать будешь?
>>1112220https://www.youtube.com/watch?v=98QaohqueH8Вот, что имелось в виду.
>>1112225У него при сохранении файла весь код в нем подгружается в живой процесс. Плюс рядом собственно репл для ввода отдельных выражений.Это в общем случае менее гибко\удобно, чем полноценная интерактивная среда, но тоже норм. Если его все устраивает - не вижу ни проблемы, ни причин доебываться с такими предъявами. Нам ведь тут не шашечки, а ехать.
>>1112258>У него при сохранении файла весь код в нем подгружается в живой процесс.Лейновский репл так умеет или это сублаймовский костыль?Это пиздец неудобно. И кстати, думаешь, он об этом знает?
>>1112258>Нам ведь тут не шашечки, а ехать. Нет, именно шашечки, иначе бы он сейчас котлин ковырял или даже скалу.
>>1112223Буду конечно!Имакс лучший редактор евер, хотя там хватает своих заебов вроде костыльной работы модов. Но он лучший среди редакторов, нахуя их сравнивать с жирнейшими иде.
>>1112345>Имакс лучший редактор еверДальше не читал. Емакс - не редактор, а среда программируемых буферов.
>>1112348Whatever, мне очень важно знать твое мнение, не забудь википедию поправить.
>>1112336Я в курсе, но я не делаю ничего особо серьезного поэтому мне норм.https://stackoverflow.com/questions/7658981/how-to-reload-a-clojure-file-in-repl>>1112340>сейчас котлин ковырял или даже скалуМээ, скала не зашла, котлин я и так дрочу на работе.
>>1112345Ну так-то анон выше тебе все по делу сказал. Имакс - это не редактор, а оболочка. Как редактор (ванильный) имакс как раз моча говна, все нормальные пацаны ставят в имакс вим в качестве редактора, например.
>>1112340Meh.>>1112336Ну, фигвил так умеет, для ринга есть соответствующие лейн-плугины, ну и дженерик-версии тоже наверняка есть - но я не сильно интересовался, у меня другой воркфлоу.Да и ничего "пиздец неудобного", вполне нормально можно пользоваться - особенно с тем же фигвилом. Но полноценная среда, конечно, лучше, - особенно с component.
А вы тут за упражнения из SICP поясняете?Или лучше другой тред поискать?
>>1112516Да спрашивай, хуль как не родной.Кстати, тут вроде где-то хаскель-тред был с сикп-чуваком - никто не видел?
Таки ставят.evil - годнота
Какой лисп выбрать для веба? Желательно хорошая поддержка сетевых протоколов.
>>1114888Clojure
Ебать вы тут все умные. Какие вы тут такие школы и универы заканчивали, что вы тут так можете расуждать про такие сложные вещи?Вы тут все по вечерам после работы что ли ебашите на лиспах? Откуда у вас столько рвения изучать его? Это же совершенно непрактично.
>>1114911лиспы изучаются за неделю. читай сикп, будешь таким же (почти).
>>1114888Common Lisp>>1114911Попробуй сам.
>>1114945В сикпе не лиспсхема изучается, а основы программирования.
>>1114969ну дык я о чем. в сикпе основы теор. кс.
>>1114888>1488Очевидный CLISP очевиден!https://www.reddit.com/r/programming/comments/9lyp1/clisp_a_lisp_implementation_that_includes_a/
>>1084663Мечтай.
>>1114904Пугает зависимость от JVM. Еще не совсем понятна экосистема, есть же всякие nrepl и прочее, теперь еще какой то clojure cli появился, по кложур маловато исчерпывающей информации.>>1114967Какая реализация? Правильно я понимаю, что для каждой реализации свои библиотеки, или как?>>1115106Для меня его преимущества не очевидны. Ссылка на реддит показалась вообще ни о чем. Clisp компилируемый?
Жс макака репортинг. Хочу попробовать кложаскрипт на фронте и беке. С чего начать? Нужно ли сначала кложу потыкать или можно сразу клжс? Ну и материалов посоветуйте.
>>1115286Как можно юзать ClojureScript на сервере?
>>1115188>Какая реализация? Дефолтная в общелиспомире - SBCL.>Правильно я понимаю, что для каждой реализации свои библиотеки, или как?Нет. Такое только в схеме.
>>1115305Нода же.
>>1115188>по кложур маловато исчерпывающей информации.Ты не умеешь в английский?>>1115188>Ссылка на реддит показалась вообще ни о чем. Clisp компилируемый? Ты не очень умный?
>>1115286Начни с ПОДНЯТИЯ ФИГВИЛА ФИГВИЛ САМ НЕ ПОДНИМЕТСЯ КЛЖС В ЖС САМ НЕ СКОМПИЛИТСЯ КЛЖСБУИЛД САМ ПРОФИЛИ СЕБЕ НЕ НАПИШЕТ СОУРС МАПЫ САМИ СЕБЯ НЕ НАСТРОЯТ ЧТО ТАКОЕ АХ ДА РЕПЛ САМ К СЕБЕ НЕ ПОДКЛЮЧИТСЯ ПРОДЖЕКТ.КЛЖ САМ СЕБЯ НЕ НАПЕРДОЛИТ АХАХАХАХАХА с поднятия окружения и написания (методом вдумчивой копипасты) todo-mvc без сервера. Как разберешься с клжс - я бы порекомендовал таки потыкать сервер-сайд на обычной кложе (предполагаю, что ты не аутист и с джавадоками у тебя проблем нет), потому что это все-таки более мейнстримно, чем нода.Ну а так - стандартно:https://www.braveclojure.com/http://www.4clojure.com/https://clojure.org/ https://clojurescript.org/http://clojurescriptkoans.com/http://clojuredocs.org/https://repl.it/site/languages/clojurehttps://leiningen.org/https://github.com/bhauman/lein-figwheelhttp://clojurians.slack.com/https://groups.google.com/forum/#!forum/clojure#clojure@irc.freenode.netИз юай фреймворков начни с реагента, ибо документация неплохая. Но там, емнип, стандартный темплейт проекта довольно тупой. Если надо - могу скинуть project.clj и tree clj\cljs проекта.
>>1111769>>1115469Блядь, надо уже запилить тред с шапкой.
>>1115469Спасибо что расписал, няш. Теперь я просто обязан все это осилить.
>>1115601Если что - задавай ответы :3
В дс2 реально найти работу джуну на кложе?
Аноны, помогите пожалуйста. А где можно найти IDE для Common Lisp, где не надо ебаться с установкой под винду. Я нашёл какие-то:LispStickhttp://www.iqool.de/lispstick.htmlHome lisp http://homelisp.ruА вот в чём вопрос, что на них можно сделать? То есть, я смогу обучиться используя эти приложения хотя бы до уровня написания школьных программ?
>>1118517>А где можно найти IDE для Common LispТут https://portacle.github.io/>Я нашёл какие-тоВ каких закоулках интернетов ты шарился? Второе, кстати, вообще не общелисп, а какой-то странный диалект от странного автора с непонятными целями.
>>1117512>джунуПожалуй, только если ты очень сообразительный, придешь на новый проект и убедишь насяльника, что ты сейчас хуяк-хуяк и в продакшн все сделаешь.>>1118517>я смогу обучитьсяIDE с обучением вообще никак не связаны, хоть в блокноте пиши.
>>1118517LispWorksЛет десять назад я к нему и кряк находил))
какой лисп учить первым новечку? или лучше в какой-нибудь с\руст вкатиться сначала?
>>1118967Я как-то пробовал: да ну, он страшный какой-то, не настолько, конечно, как аллегро, но емакс все равно комфортнее.
>>1118971>какой лисп учить первым новечку?Думаю, с общелиспа лучше, т.к. он не такой игрушечный как схемарэкет, и не требует знания жавы/жс как всякие кложуры. И у него есть CEPL https://github.com/cbaggers/cepl/blob/master/README.md>или лучше в какой-нибудь с\руст вкатиться сначала?А вот с них точно не стоит: слишком уж многое нужно изучить, чтобы написать что-то сложнее хелловорлда.
>>1118971Scheme, конкретно - PLT Racket. Без вариантов, он ровно для этого и создавался.
>>1119285Я запутался с диалектами Scheme/Racket. Есть Scheme, Racket, PLT Scheme, PLT Racket, и еще несколько диалектов. Зачем всё это и чем отличается друг от друга?
Помогите пре-ньюфагу. На каких диалектах можно кодить под windows "из коробки"? Уверен, такие есть. Без шаманства и плясок с бубном типа установки 10 модулей на emacs и виртуальной машины в придачу.
>>1119412Тебе ж дали уже portacle, в котором есть все, что тебе потребуется.
>>1119470>portacleНе слышал о таком. Установил, поиграюсь. Добра тебе, анон.
>>1119412https://download.racket-lang.org/
>>1119516>Не слышал о таком.Ну вон же, парой постов выше.
>>1119306Scheme - название языка. PLT Racket - название конкретной реализации этого языка, которая раньше называлась PLT Scheme, а потом переименовалась в плт-ракетку. Все.
покидайте плиз книжок по раскету знаю немного жс и ооп
>>1119728можешь привести пример разницы в реалезации языка пожалуйста? вообще не понимаю как это (
>>1119859Язык - это набор правил, абстракция. Интерпретатор/компилятор - его реализация. В языке не прописано как интерпретатор должен читать и выполнять комманды, это решает разработчик интерпретатора. Соответственно, разные интерпретаторы языка Х могут быть написаны по разному, но все они должны выдавать одинаковый результат при чтении комманд для языка Х. То есть суть одна, но реализация может быть разной.З.Ы. я сам никогда интерпретаторы не писал, так что могу быть не прав.
>>1119819http://htdp.org/https://docs.racket-lang.org/guide/
>>1119859++i + ++i
Кажется. тут кто-то шапку порывался запилить. Как успехи?
>>1057101 (OP)http://technomancy.us/185
Почему проекты на кложе так долго запускаются? И на сколько код на кложе медленней чем аналогичный код на джаве?
>>1122501Потому что clojure.core оче жирный, а жвм предназначена для долгоживущих (серверных) процессов. Подробнее: http://clojure-goes-fast.com/blog/clojures-slow-start/Медленнее в 2-3 раза медленнее скалы, быстрее жруби, но зависит от задач. Подробнее: https://github.com/totakke/clj-perf-tips>>1121582Я забыл((
>>1122594>быстрее жрубиРазве оно вообще живо? Лучше скажи, какова она в сравнении с груви.
>>1122738>грувиРазве оно вообще живо? Не думаю, что между ними есть какая-то особая разница в производительности.
>>1122501>>1122594>>1122738>>1122813Graal (+ Truffle + Substrate) порядок наведе.
>>1122820Вот имаджи а-ля сбцл завезли бы - было бы круто.Хотя с другой стороны - никаких проблем с этим на самом деле нет. Весь этот "слоу стартап" упирается чисто в эстетические чувства девелоперов - ну типа НЕПРИЯТНО, что чистый репл в пустом открывается пару секунд, а не пару миллисекунд. Хотя на любом реальном проекте запуск репла и первичная компиляция делаются раз в день\неделю (и один хуй занимают достаточно дохуя времени, +- пару секунд погоды не сделают), а дальше - reloaded, вот это все. Для скриптов есть персистентные процессы, для мобилок - клжс+реакт нейтив. То есть реальной нужды, блин, в этом нет никакой - но все равно внутреннему хипстеру НЕПРИЯТНА.
>>1122826> для мобилок - клжс+реакт нейтивДа иди ты нахуй, пидор! Сначала веб в ебаную помойку превратили, что уже без 8 ядер и 16гб текст с картинкой не посмотришь, а теперь и к мобильным платформам свои поганые ручки тянете.
>>1122826>Для скриптов есть персистентные процессыДля скриптов есть скриптовые языки.
>>1122836Ты о чем?>>1122841И?
>>1122836Но РН нормально работает, быстро более-менее. Тот же мобильный Слек.
>>1122848>быстро более-менее>более-менееЯ бы сказал, слишком быстро. Даже сигарету полностью выкурить не успеваю, пока вводится набранный текст.Эх, а всего каких-то пятнадцать лет назад о такой дружелюбности интерфейса и мечтать не могли. Ни гиф-смайлик по кадрам рассмотреть, ни передохнуть за время анимации ввода... не до таких изысков на 124х мегагерцовом арме было.
Молодые люди, долблюсь в Clojure, не могу понять как составить рекурсивную функцию подсчета.Поставил перед собой следующую задачу:Есть матрица, нужно посчитать количество одинаковых элементов в определенном направлении(лево-право, тд) от конкретной ячейки.Матрица - вектор векторов.Описал следующие переменные:(def up-cell [0 -1])(def right-cell [1 0]) .. и подобные для всех направленийХочу составить функцию следующего вида:(defn count-out-consecutive [matrix [x y] turn] (...))Я представляю как рекурсивно перемещаться по переданной матрице - к [x y] прибавлять turn на каждом рекурсивном вызове, но не могу понять как мне считать количество одинаковых элементов.Как идея можно добавить отдельный набор аргументов с отдельным телом функции, который будет иметь счетчик как последний аргумент, но это жуткая копипаста. Будут два почти одинаковых тела.Сейчас попробую это реализовать так, и вкину, чтобы было яснее о чем идет речь.
>>1122866>Матрица - вектор векторов.Flat вектор был бы эффективнее по идее.>Описал следующие переменные:Я бы сделал (def directions {:up [0 -1] ...})>Будут два почти одинаковых тела.Если честно, я нихуя не понял, о чем ты, но посмотри на эти функции:http://clojuredocs.org/clojure.core/group-byhttp://clojuredocs.org/clojure.core/frequencieshttp://clojuredocs.org/clojure.core/subvecАлсо, для начала попробуй написать функцию, которая просто принимает последовательность и возвращает мап из ее элементов в количество их вхождений: (f [:a :b :b :c :a :b]) => {:a 2, :b 3, :c 1}Спойлер: используй reduce
>>1122879На данный момент сделал так:https://pastebin.com/aY8KmXKSВыглядит слишком мудренно, прошу помощи в упрощении.Сейчас гляну ссылки.Дикты вещь прекрасная, я пока еще не привык к кложуру, просто забыл про них.Алсо, прочел уже больше половины книжки про кложур, и все еще нихуя не знаю про ':name', знаю как юзать, знаю что можно использовать как операцию для получения валуе по ключу ака (:key dict), но что это не вдупляю, тип данных Keyword, гуглил:'Returns a Keyword with the given namespace and name. Do not use :in the keyword strings, it will be added automatically.'нихуя не понял. Не мог бы ты пояснить?
>>1122883Keyword это уникальная строка.
>>1122887(str :abc)=> ":abc"Че-то я сгорел
>>1122887Не совсем понял, "уникальная строка" подразумевает что оно ведет себя абсолютно так же как и строки, просто уникально?Пойду в луп потещу что да как.
>>1122893(clojure.string/replace :abc #"c" "d")=> ":abd"(keyword (clojure.string/replace :abc #"c" "d"))=> ::abdНу ахуеть теперь.
>>1122893В том смысле что они указывают на один объект.https://github.com/clojure/clojure/blob/f572a60262852af68cdb561784a517143a5847cf/src/jvm/clojure/lang/Keyword.java
>>1122896Разве обычные строки и так не указывают на одни и те же объекты в памяти? Делать иначе - не имеет смысла, особено учитывая что все структуры данных в clojure неизменяемые, если книжка не напиздела.
>Алсо, для начала попробуй написать функцию, которая просто принимает последовательность и возвращает мап из ее элементов в количество их вхождений(reduce #(assoc % %2 (inc (get % %2 0))) {} '(:a :b :a :a :c :d :e :f))Хорошее упражнение. Мне кажется что я могу переписать на похожий лад мою функцию из >>1122883.И все же мне интересно как наилучшим способом ее следовало бы реализовать без мапов редьюсов и тд с тем аргументами, которые я описал.
>>1122907сократил функцию доhttps://pastebin.com/7BebNiELДень прожит не зря.
>>1122898Джа ваСтроки то и в джаве иммутабельные, только не на один объект указывают, конечно в ранйтайме есть дедупликация, но расчитывать на это не стоит.
>>1122883>прочел уже больше половины книжки про кложур>просто забыл про них (дикты)>нихуя не знаю про ':name'>больше половины книжки про кложурYou're doing it wrong.https://pastebin.com/aY8KmXKS> )> )> )Просто убей себя, пожалуйста.
>>1122883>Не мог бы ты пояснить? https://clojure.org/reference/data_structureshttps://clojure.org/guides/faq#why_keywords>>1122895>Ну ахуеть теперь. (keyword "foo") => :fooЕсли в качестве имени кейворда ты по какой-то неведомой причине, которую тебе стоит обсудить со своим психотерапевтом используешь строку, первым символом которой является двоеточие, то литеральное представление получившегося кейворда будет содержать два двоеточия.>>1122907>% %2Никогда так не пиши.>'(:a :b :a :a :c :d :e :f)За это отправляют в гулаг. В - векторы.>)Ну все, нигер, ты огребаешь, мать твою!>наилучшим способом>без мапов редьюсовВзаимоисключающие параграфы.>>1122991Ты создаешь анонимную функцию и тут же ее применяешь. Зачем?
Ладно, пойду спать, спойлер: http://vpaste.net/2iROa
>>1123144>Ты создаешь анонимную функцию и тут же ее применяешь. Зачем?Ну, типа, у меня есть матрица, и мне по моему кастомному алгоритму нужно по ней итерироваться и что-то считать, а так как все объекты неизменяемые, я увидел только данный подход. Вообще не могу найти функцию, которая бы итерировалась по последовательности по алгоритму, который я ей опишу - это то, для чего я использовал анонимную функцию.Сейчас я прочел про атомы, и имею представление как переписать код используя их. Вот только нужно ли это? Какое в сообществе кложура отношение к атомам? В плане "если можно без них, лучше без них" или что-нибудь в этом роде? Или херачь как хочешь?Вообще, вкиньте пеп8 для кложура, чтобы научиться скобочки ставить
>>1123198-> >>1123149 але епта>пеп8 для кложураhttps://github.com/bbatsov/clojure-style-guide
>>1123149https://ideone.com/yMdYUtМы вам перезвоним.>4 386 816KB Кстати, куда оно столько памяти жрет?
>>1123235>Мы вам перезвоним.Лол. Ну я же просто твой же код переписал, все по ТЗ :3 Если тебе надо, чтобы nil было валидным значением, можешь просто добавить в один из get-in какой-нибудь ::not-found третьим аргументом.
>>1123235>4 386 816KB Шта. Не знаю, у них там что-то поломано.
>>1123235Алсо, я сейчас посмотрел на второй вариант и осознал, что какую-то хуйню там написал вот что бывает, когда в 5 утра джвачаешь вместо того, чтобы спать, на самом деле как-то так: http://vpaste.net/594Ez
>>1123257>твой же код Нет, не мой.>все по ТЗРазве в ТЗ было сказано зацикливаться при определенных условиях?>росто добавить в один из get-in какой-нибудь ::not-foundКакие-то грязные хаки уровня js, один охуеннее другого. В нормальных языках по ебалу получил бы за обращение к несуществующему элементу, чтобы не повадно было так говнокодить.
>>1123266>Нет, не мой.А чей? Ты не >>1122991-анон?
>>1123277Нет ,не он
>>1123282Ну так прочитай диалог, прежде чем в него влезать, ну. Открой пасту из указанного поста - я переписал его код, не изменяя алгоритма. По ТЗ матрица была без дырок.>>1123266>Какие-то грязные хаки Где, какие грязные хаки?>по ебалу получил бы за обращение к несуществующему элементуНу так ты и получаешь по ебалу nil'ом. Option<t> называется, динамический его вариант. Если у тебя отсутствие значения должно быть валидным значением, то тебе нужно это предусмотреть в своем алгоритме. Делается это элементарно, одним словом.В чем суть твоего бугурта?
>>1123289>не изменяя алгоритмаА уход в бесконечный цикл ты, конечно, посчитал частью умысла, да?Зато до скобок доебался.>Ну так ты и получаешь по ебалу nil'ом.Ножом в спину в самый неожиданный момент ты получаешь и увлекательную отладку бонусом. И повезет, если ошибка вслывет на стадии разработки.>Option<t> называется, динамический его вариант.Мудачеством это называется. Прекрасно понимаешь, что обосрался, но все равно пытаешься спорить, выдумывая идиотские оправдания.>Option<t>Ты упускаешь один ключевой момент. Всмотрись в свое выражение - что такого особенного делает Option с исходным множеством t, что его выгодно отличает от старого говнокодерского приема с возвратом 0xdeadbeef, 42 и прочих магических значений, превращающих код в бомбу замедленного действия?
>>1123265Кстати, ты там бесконечный список :not-found'ов делить пытаешься.
где еду берете?
>>1123625>Зато до скобок доебался.Логично доебываться в первую очередь до очевидных вещей, не?>Ножом в спину в самый неожиданный момент Божечки! Как страшно жить!>Мудачеством это называется.Maybe-типы - мудачество? Ээ, ок.>приема с возвратом 0xdeadbeef, 42 и прочих магических значенийЭэ, ты о чем сейчас? Где ты такое увидел?>>1123639>бесконечный список :not-found'ов делить пытаешься. На ноль?>>1123643Она приходит к нам сама.
>>1123646И всё? Просто прикинешься шлангом? Ну так даже не интересно.
>>1123655Я не ебу, о чем ты. Если ты так троллишь, то ок, считай миссию успешной.
>>1123660Воу, не думал, что все может быть настолько плохо.>>1123646>На ноль?Код запусти.
>>1123667Запустил. И?
>>1123684Хуи https://ideone.com/Ls05CN
>>1123684Хм, насчет деления бесконечного списка уже я обосрался. Оказалось, в кложуре все наоборот: partition действует как group в хаскеле, а group - почти как partition.Но тогда с какого хуя оно зацикливается? Похоже, правильно я предполагал, что это не достойная внимания параша уровня жс
>>1123718Ты какой-то долбоеб. repeat возвращает seq, а матрица - это вектор векторов: https://repl.it/repls/ReflectingKnowledgeableKarakulРаз ты не тот анон, который изначально задавал вопрос, то иди почитай документацию и отъебись от меня, пожалуйста.
>>1123736То есть с векторов get может изымать значения, а со списков - нет? Неочевидненько. Но тогда какого хуя не сигнализирует об ошибке? Мне казалось, кложура сильнотипизированная.
>>1123732Упс, не видел этот пост. Лучше бы и дальше не видел. >Но тогда с какого хуя оно зацикливается?Ну прочитай код же, блин. Алгоритм рассчитан на корректный вход, где coords входят в матрицу. Если по coords с самого начала ничего нет, то и partition не отделяет конечный список элементов от бесконечного списка пустоты, а подсчет длины бесконечного списка занимает чуть больше времени, чем мы можем себе позволить. Реализацию версии алгоритма, которая возвращает, например, 0 для выходящих за пределы матрицы координат оставим читателю в качестве несложного упражнения.>>1123759>То есть с векторов get может изымать значения, а со списков - нет? Неочевидненько. Вектор - ассоциативная структура, список - линейная. get, очевидно, работает с ассоциативными структурами (в частности - мапами, векторами и сетами). Для итерации последовательности в поисках энного элемента есть (очевидно названная) функция nth но если ты ее используешь, то ты скорее всего делаешь что-то не так. Почитай что-нибудь про алгоритмы и структуры данных в функциональных языках.>Но тогда какого хуя не сигнализирует об ошибке?Потому что ошибки нет. Стандартная библиотека придерживается принципа garbage in - garbage out.>Мне казалось, кложура сильнотипизированная.Почитай, что значит слово "сильнотипизированный".
Ебать у вас тут холивар с моего говнокода про матрицу. А что за уход в бесконечный цикл? Из разговора у меня создалось ощущение, что при определенных невалидных данных все может уйти в бесконечный цикл, или о чем речь?
>>1124133Прямо над твоим постом описано же.
>>1123794>Вектор - ассоциативная структура, список - линейная.Они обе линейные, умник, блядь, и в одинаковой мере условно "ассоциативные".>Почитай что-нибудь про алгоритмы и структуры данных в функциональных языках.Да ты б сам что-нибудь почитал.>Потому что ошибки нет.Как это нет? Налицо ошибка типизации и непоследовательность проектирования языка, хотя на сайте утверждается обратное. Ну ок, допустим, автор руководствовался не велением левой пятки, а той логикой, что типихация у нас слабая, значения неверного типа приводятся к пустой таблице. Но тут же наше предположение разбивается о поведение симметричной операции.>Стандартная библиотека придерживается принципа garbage in - garbage out.Какой чудесный язык, куда ни плюнь - везде не баг, а фича.И чем обоснован такой принцип? Экономией на строках? Ненавистью автора к своим последователям, просто потому что скриптопарашники должны страдать?Честно говоря, не ожидал, что кложура окажется такой говниной. Но больше поразила какая-то безропотность и упоротость сообщества, сравнимая, наверное, лишь с голанговым. На косяки языка у него только две реакции: оправдательная - но так и задумано автором! Будто это что-то меняет и говнина перестает быть таковой и обвинительная - сам виноват, что не знал, какая пятка чесалась у автора, когда он в очередной раз решил наплевать на предсказуемость кода.>Почитай, что значит слово "сильнотипизированный".Интереснее будет от тебя услышать. У вас, кложуристов, там, похоже, своя атмосфера и свое особенное мнение по поводу многих вещей.
>>1124133Нет проверки на выход за пределы матрицы, а условием выхода является неравенство начальному элементу. Таким образом, если он совпадёт со значением, которое get возвращает в случае выхода за границы (nil по умолчанию), то ты получишь бесконечный цикл.Такой исход более вероятен, чем может показаться. Ты можешь просто-напросто забыть о собственноручно созданных ограничениях или сам того не заметив притащить nil/::not-found/etc из других участков кода.>при определенных невалидных данныхНе бывает невалидных данных, бывают невалидные алгоритмы.
>>1124657https://clojure.org/reference/sequenceshttp://hypirion.com/musings/understanding-persistent-vector-pt-1https://en.wikipedia.org/wiki/Strong_and_weak_typingПопробуй потоньше, троллинг тупостью итт не заходит.
>>1124717>троллинг тупостью итт не заходитОй ли? То у него игнорирование ошибок типизации - не баг, а фича, то вектор - не линейная структура данных, но ассоциативная, то Option<t> у него со множеством t совпадает, теперь ещё и абстрактное представление сд от её реализации не отличает и/или не читает свои же ссылки.Да, признаю, ты меня затроллил. Можешь не утруждать себя очередными маневрами: выводы о языке я уже сделал (спасибо за правильные ключевые слова, по ним немало говна всплыло), а твоими охуительными историями уже по горло сыт.
>>1125029Ты несешь какую-то хуйню. Либо прекращай щитпостить, либо начну репортить.
Шпиону удалось украсть последние 50 МБ исходного кода программы на Lisp, которая управляет запуском баллистических ракет США. К счастью, там были только закрывающиеся скобки)))))))))))))))))))))))))))))))))))))))))))))))))
>>1125762самый длинный в мире смайл
Кложа проект можно в один бинарник собрать, как например это в го делается?
>>1127303В этом плане она ничем не отличается от джавы, берешь и собираешь сторонними тулзами. Плюс есть упоминавшийся выше по треду Graal. Если пишешь на кложурскрипте, то опять же, никаких принципиальных отличий от билда обычных node-webkit стандалонов нет.
Анон, подскажи компании, которые в дс2 на кложе пишут и могут к себе взять нюфаню.
>>1128571Ну, вот первая страница в гугле:https://spb.hh.ru/vacancy/19898706https://spb.hh.ru/vacancy/20387112https://www.superjob.ru/vakansii/clojure-29706215.htmlhttps://www.linux.org.ru/forum/job/13837682Я сомневаюсь, что тут в треде сидят представители каких-то компаний и кого-то хантят, а рекомендовать какого-то хуя с двощей никто никому не будет. По знакомствам все. Ходи по конфам, приглядывайся. Ну и сценарий "взяли миддлом на легаси, увидели, что крут, перевели на новый проект с интересным стеком" мне видится более вероятным.
Анон, какие плагины юзаешь для емакса?
>>1133018spacemacs.
>>1133018Хотел было вывалить тебе ls .emacs.d/elpa, но потом подумал, что это деанон.
>>1122890(name :abc)"abc">>1122895keyword это идентификатор, либо не надо им жонглировать, либо приводи к строке и обратно явно>>1123265идеоматично, но единственное, что не нравится - появляется lazy-seq, единственная цель которой это быть count. я бы так https://ideone.com/E2xC5N>>1123759> Неочевидненькоget - синоним константной сложности https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java#L751L780 почему null/nil а не исключение - другой вопроскстати еще про это сложность https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f#why-clojure-doesnt-have-a-generic-insert-lookup-append-that-works-the-same-on-all-collections
>>1118847>>1118967Спасибо.
Анон, посоветуй материалов для вката в кложу. Попробовал книжку halloway programming clojure. Но там с места сразу а карьер. Читаю сейчас brave clojure, но все равно очень много не понятного. Может есть ещё какие нибудь ресурсы для ноюфань?
>>1136460Что же такого в brave clojure непонятного? Может у тебя с синтаксисом проблемы? Ну это лечится только решением задачек.
>>1136504Ага, именно с синтаксисом проблемы. Не привычно после жса. Думаешь стоит задачки порешать?
>>1136603Да, нужно немного перестроить мышление.
>>1136652Порешал немного задач 4clojure, застрял на функциях. Никак не могу вкурить синтаксис.
>>1137763Попробуй clojure koans. http://clojurekoans.com/
https://news.ycombinator.com/item?id=11941656
>>1138293Что ты этим хотел сказать? Показать как хике бомбанул?
Clojure-перекат: https://2ch.hk/pr/res/1139597.htmlПерекатывать общий лиспотред или лучше запилить общий фп-тред?
>>1140925 (OP)>>1140925 (OP)>>1140925 (OP)
>>1137763вместо f(arg) пишешь (f arg). simple.> Lisp in C's Clothinghttps://www.crockford.com/javascript/javascript.html
Хеллоу, лисперы! Тут раньше был тред с факом по схеме. Что-то его не видно. Так вот мне нужна среда для решения задачек из SICP'а. До этого писал на С в связке VIM + gcc в консольке. Я так понял, что в схеме мне нужен интерпретатор, а не компилятор? Кароче, где мне писать свои хеллоуворды, не обременяясь тяжеловесными IDE? P.S. Emacs ковырять ой как не охота.