Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость. Основные диалекты— Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и, в некоторых реализациях (sbcl, например), частичный их вывод.Описание особенностей: http://habrahabr.ru/post/143490Основные реализации:+ свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (llvm; ориентирован на интероп с c++), ABCL (байт-код JVM), gcl, cmucl+ коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl (для программирования под ведро и ios)— Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Тем не менее, Racket вполне практичен. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket), включая схему стандартов r5rs и r6rs.— Clojure - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.— Emacs Lisp - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.— Tcl - скриптовый язык с немного наркоманскимстранным синтаксисом. Из коробки множество батареек на любой случай жизни, среди которых неповторимый Tk. Язык очень удобен для написания скриптиков, особенно когда к ним требуется приделать графический интерфейс.— Rebol— PicoLisp - Наркоманская хуита— newLISP - Скриптовый лисп с компактным и быстрым интерпретатором и батарейками на любой случай жизни. В первую очередь предназначен для скриптоты, которую обычно пишут на perl, python, tcl, sh: обработка текстов, работа с сетью, базами данных, взаимодействие с ОС, построение графиков и т.п.Список возможностей: http://www.newlisp.org/index.cgi?FeaturesОтличия от других диалектов: http://www.newlisp.org/index.cgi?page=Differences_to_Other_LISPs Как изучить?— Common Lisp + Practical Common Lisp http://www.gigamonkeys.com/book/ или русский перевод — http://lisper.ru/pcl/ + On Lisp http://www.paulgraham.com/onlisp.html + Common Lisp HyperSpec http://www.lispworks.com/documentation/HyperSpec/Front/ — стандарт языка + Art of Metaobject Protocol — подробное описание MOP и CLOS + Попрактиковаться можно на Exercism'е http://exercism.io/languages/lispАлсо, годная статья про проектирование eDSL'ей на CL http://swizard.info/articles/solitaire/article.html — Scheme + http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html + Racket Guide + SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет) + Попрактиковаться можно на Exercism'е http://exercism.io/languages/scheme — Clojure + Programming Clojure, 2nd edition (для новичков) + The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП) + Попрактиковаться можно на Exercism'е http://exercism.io/languages/clojure — Tcl/Tk + Официальный учебник http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html + Документация по tcl http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm и tk http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm + Статьи про Tcl и Tk на wikibooks с примерчиками https://en.wikibooks.org/wiki/Category:Tcl_Programming + TkDocs с примерами на tcl, perl, ruby http://www.tkdocs.com/tutorial/index.html Среды разработкиОдно из основных преимуществ лиспа в сравнении с языками с циклом разработки "написал → перекомпилировал → запустил в отладчике" - поддержка интерактивно-итеративного метода разработки. Но без инструментария, обеспечивающего полноценное взаимодействие с реплом, оно сводится на нет. Поэтому писать без использования нормальной среды - значит упустить важную особенность языка. !!Чтобы не пердолиться с емаксом, лучше можно взять уже преднастроенный spacemacs ( https://github.com/syl20bnr/spacemacs ). — Common Lisp + Emacs + SLIME - самый лучший вариант. + vim + SLIMV + LispWorks + AllegroCL IDE упаси боже + Eclipse + cusp + <Что-нибудь для сублайма/атома уже запилили, наверное?> — Scheme + Emacs + geiser + drRacket — Clojure + Emacs + CIDER + LightTable + Vim-fireplace + Cursive Clojure (IntelliJ plugin) + Counterclockwise (Eclipse plugin) — Tcl + Emacs + tcl-mode (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно) Библиотеки— Common Lisp + Quicklisp ( https://www.quicklisp.org/beta/ ) - CPAN из мира CL + Quickdocs ( http://quickdocs.org/ ) - документация по всем пакетам из quicklisp + Cliki ( http://cliki.net/ ) + Обзор экосистемы общелиспа на швабре ( http://habrahabr.ru/post/265589/ ) — Scheme + Racket: http://pkgs.racket-lang.org/ и http://planet.racket-lang.org/ + Chicken: http://wiki.call-cc.org/chicken-projects/egg-index-4.html + http://snow.iro.umontreal.ca/?tab=Packages + http://www.schemespheres.org/spheresПредыдущие треды: http://arhivach.org/?tags=3055,113Текущая версия шапки: http://pastebin.com/NQcjG6Kp
https://www.youtube.com/watch?v=xzTH_ZqaFKI
Ударим лиспом по игропрому!http://www.youtube.com/watch?v=7V9TF2qx1_8
>>649344 (OP)Что происходит на ОПпикче? Лисп похищает петон с земли, или же наоборот ПОДБРАСЫВАЕТ ЕГО НАМ?
>>649769Пидорским его делает, своими пидорскими лучами.
>>649769Думаю, похищает, спасая тем самым человечество от вредного питона.
>>649769Он его поднимает. Просто другие способы его поднять не сработали. Оставалось только попробовать летающую тарелку и гравитационные лучи. Вот так питон и взлетел. А если выключить луч, то питон упадёт.
>>649348https://www.youtube.com/watch?v=V0zxtX_1X8E
>>649770не пидорским а украинским
>>651743золотце, ты?
>>652203Разве это похоже на симту?
Лиспаны, а сильно ли велик оверхед от CLOSовских методов?И как это проверить?
>>652186Лол, а ведь правда.
>>649567>>651743Лисп пиздит питон.
>>653132Как же всё-таки графон игру преображает.
Есть ли что-нибудь по лиспу типа checkio?
>>653314Что это? Хипстота какая-то?Я так и не дождался, пока оно намайнит достаточное количество биткоинов, чтобы запуститься.
Ну что же вы, лиспаны?Ньюфаг вкатывается в тред. Начинаю учить кложуру для своего удовольствия. Какие подводные камни?
>>656437У тебя жаба в жопе застрянет, аккуратней.
>>656437>Какие подводные камни?java
>>656526где жава то, если кложура минуя жабу компилится в машинный код jvm?
>>656572Это ты так толстишь?
>>656572А жава там by design, потому что кложура - hosted язык. Читай как нескучный синтаксис к яве.
>>656601Ну так и хорошо же. Все это томкаты, jdbc драйверы, разве плохо?
>>656605Томкат - гавно, а вот netty - заебись.
>>656437Жабу знаешь? Если нет, то начни с чего-нибудь более самдостаточного.
>>656609знаю жабу и груви.
>>656607звучит достоверно
>>656605>Ну так и хорошо же.Не очень. Жаводрисня в кложурном коде выглядит слишком гхм... гармонично. Профит сомнителен. >Все это томкаты, jdbc драйверы, разве плохо?Конечно. Но некоторым вроде норм.
>>656620Какой тогда есть диалект лиспа с конкурентоспособной инфраструктурой?
>>656623Common Lisp, конечно же
>>656620https://gist.github.com/nblumoe/5468625Вот типичный пример использования кложуры. Скриптуем яву в странном синтаксисе.
>>656605Если торчащая изо всех щелей жава тебя тебя не сильно смущает, то кложура, может быть, не такой уж и плохой выбор. Хотя я бы на твоём месте сначала присмотрелся к скале или котлину.
>>656706>>656642>>656625Отлично, зашел в лиспотред чтобы услышать какое говно кложура. Ну ничего, если мне не понравится то уйду на коммон лисп. Или скалу, раз настаиваете.
>>657244Про
>>657244Просто кложура здесь не в почёте.
>>657260Просто использование ЯП без нормальной системы типов не считается современным и оправданным.
>>657261А разве уже есть нормальные системы типов?
>>657266Нормальные ::= Те, чье наличие приносит меньше вреда, чем отсутствие статической системы типов.Такие есть. Даже сраные кресты в этом смысле лучше кложуры с динамикой.
Ананасы, а как у Лиспа обстоят дела с вебом? Есть ли удобные фреймворки с MVC архитектурой и функциональными плюшками (асинхронность, иммутабельность и т.д.)? Я писал сайты/веб-сервисы на Java, C#, Python, PHP, Node.js, немного смотрел Ruby, Perl и Go, но ничего из этого не понравилось, как-то все оно громоздко и неуклюже, с тоннами глючащего говнокода. Вот сейчас решил попробовать функциональщину и размышляю, что лучше выбрать, Лисп, Хаскель или Эрланг.
>>657274Ну, существует также мнение, что кресты сами по себе приносят больше вреда, чем пользы. Да и еблю с Map<String, Vector<Pair<X, Y>>> едва ли можно признать нормальной. В этом смысле мне больше нравится ocaml. Да и в общелиспе благодаря частичному выводу типов отлавливается большинство ошибок, связанных с типизацией.
>>657284>удобные фреймворки с MVC архитектуройПостроены на модели чистых вычислений почти полностью (асинхронность, иммутабельность): React c Redux. Или ScalaJS c React и с Diode.>а как у Лиспа обстоят дела с вебомвот так (скорее всего):>неуклюже, с тоннами глючащего говнокода
>>657291На самом деле, не так всё плохо.
>>657288>Map<String, Vector<Pair<X, Y>>>Как что-то плохое, за исключением иммутабельности, работой с Optional через монады, и т.п.
>>657291А Clack и Caveman?
>>657284Сейчас в основном используются фреймворки, построенные поверх clack ( http://clacklisp.org/ ): caveman, lucerne, ningle.Иммутабельные структуры данных есть, но в виде отдельной библиотеке, которой мне никогда пользоваться не приходилось. fset, кажется, она называлась.Для асинхронности существует cl-async и построенная поверх него библиотека promise'ов - blackbird.Как-то так. И да, общелисп - не функциональщина.
>>657299>библиотеки
>>657299> И да, общелисп - не функциональщина.Хаскель тоже не функциональщина из-за монад.
>>657640>calc.exe не функциональщина из-за нагрева процессора
>>657654>матешка не фопэ из-за расходования чернил
>>656598http://blog.guillermowinkler.com/blog/2014/04/13/decompiling-clojure-i/
>>653132Лисп еще много кого пиздит.http://www.youtube.com/watch?v=xaR_Hqo68TU
>>657889О, ты наконец-то сделал подсказку.
>>657889Графон охуенный, кстати
>>657889Поделюсь что-ли впечатлениями от процесса написания игрушки.На начальном этапе, когда я делал механику, все было замечательно. REPL идеально подходит для такого рода вещей. Накатал пару функций, тут же посмотрел как они себя ведут. Красота.Дальше пошла ебля с ffi. Здесь все волшебство репла кончилось. Понадеявшись на сборку мусора я поймал замечательные баги с неверной очисткой памяти и вообще порчей этой самой памяти при нескольких перезапусках SDL/переподгрузкой спрайтов. Ладно, хоть продакшн версия не страдает от этого недуга, т.к. после выхода полностью убивает образ. В общем прелести репл разработки свелись к тому, что постоянно приходилось перезапускать этот самый репл. Времени на поиск причин, очевидно, не было, потому что надо было делать игру. Итак столько дней было убито на попытки заставить это все работать под виндой и некоторые другие фиксы библиотеки.Но это все частности, библиотека сырая, комьюнити полтора инвалида. Спишем на это.CLOS при всей своей навороченности выдает такие стек трейсы (по крайней мере в sbcl) что отладка превращается в загрузку всего кода в голову, в попытках понять где вообще это произошло. Да, не осилил.Макросы наиохуеннейшая вещь. Описания поведения карт и боссов замечательно легли на маленький dsl.Рефакторинг динамически типизированного языка, особенно с макросами уровня with-slots это полный распиздос. Да, не осилил.В общем чувства после конкурса у меня смешанные — с одной стороны вроде и писать приятно, с другой стороны, сказался недостаток опыта решения конкретных задач, которые подкидывает лишп и его библиотеки.
У вас есть обфускация кода?
>>658330Зачем?
>>658330Принципиально возможна, но реализована ли - мне не известно.
>>658333Любопытно.>>658334Значит за столько лет её никто не написал? А криптографические программы на лиспе писать можно? Как у него со скоростью? Всякую стенаграфию шифровать на алгоритме который легко распространить но сложно понять принцип работы получится?
>>658341>А криптографические программы на лиспе писать можно?http://www.cliki.net/Ironclad>Как у него со скоростью? SBCL, CCL и все (вроде бы все) коммерческие реализации генерируют довольно эффективный код.
>>658251Наверное, стоило тебе посоветовать использовать более отлаженный да и вообще неплохо написанный lispbuilder-sdl. Правда он первую версию sdl'я поддерживает, а не вторую.> В общем прелести репл разработки свелись к тому, что постоянно приходилось перезапускать этот самый репл.Можно было обернуть место, где у тебя инициализируется игровой мир, перезапуском и его уже дергать без переинициализации sdl.>особенно с макросами уровня with-slots with-slot'ом лучше не злоупотреблять. Обычно он используется для слотов, которые считаются приватными, потому как обращается к ним напрямую через slot-value, а не через методы-accessor'ы, которые могут быть переопределены пользователем.
Господа, задали ДОМАШКУ в вузе. Я не прошу ее решать, прошу только помочь с формулой (ну да, сказать формулу - считай решить, лол). Просто подскажите формулу, как проверить "входит ли одна окружность в другую". Я с детства в контрах с алгеброй и геометрией. Вот текст задачи:"Даны координаты центров и радиусы двух окружностей на плоскости. Может ли вторая окружность целиком содержится внутри первой?"Не нужно решение, просто формула или хотя бы подскажите, куда копать. С меня нефть или фотки Эммы Стоун.
>>658432>Я с детства в контрах с алгеброй и геометриейНет, просто ты ленивое мурло, решившее поступить в вуз "шоб як у всiх". Отчисляйся, высшее образование не для тех, кто задачу седьмого класса решить не может.
>>658438Ну не помогай, тебя не заставляют.Гондон.
>>658441Поддвачну >>658438-адеквата, задача простая, гондон ленивый здесь ты.
>>658486Да я знаю, что она простая. Но я не знаю, в каком направлении копать, блять. Ебаный в рот, у меня по геометрии было три года подряд ебаная два, по алгебре аж три. Ну что, сложно сказать, что искать? Что за упыри, блять.
>>658503За это время мог бы уже изобразить задачу да сориентироваться, как её решать.Расстояние между центрами вычисли, а потом сравнивай с радиусами.
>>658542Мне уже знакомый хохол с хабра скинул формулу. Это вообще какая-то вычислительная геометрия, оказывается.Почему такая конъюктура на большинстве форумов? Если кто-то спрашивает, то его сначала хуесосят, пытаются провести анализ, проецируя свои реалии на этого человека (например, тот имбецил, который ляпнул про вуз), а потом дают наставление? Да я ебал, аж бесит.
>>658550Потому что нет никакого желания помогать ленивому хуйлу, которому лень пять минут посидеть, подумать.
>>658565Ты совсем ебнутый? Я специально написал, что я не умею в геометрию и алгебру, чтобы таких имбецилов, как ты, прогнать. Нет же, любой, кто знает (или делает вид, что знает), но не хочет сказать, считает долгом высраться в стиле "а ты сначала подумай, а потом реши". Как по-твоему, если я вообще не умел в геометрию, сейчас приду к выводам о решении формулы? Тебе же на это похуй, ты просто захотел высраться и высрался. Типичный дегенерат с постсовка. На стаке за "а ты подумай", "да это элементарно" банят нахуй и правильно.
>>658582Не можешь в геометрию - не сможешь и код писать.
>>658584ты правда даун, лолбля, не знать алгебру - одно дело да и то её можно знать на уровне 3-4 класса максимум 7-9 а вот кукарек насчёт геометрии пиздец какой тупойв каком месте она нужна кроме дрочева задач?
>>658593>в каком месте она нужна кроме дрочева задач?справка что не дебил. с дебилами по своей воле никто работать не станет
>>658612>вместо ответа он решил скосить под дурачка неплохо ты под себя подливки ебнул, даун ;)не знать геометрию - пиздец гуманитарем надо бытьдумать что она пригодится в программировании не относящемся к топологии и архитектуре - нужно быть не просто гуманитарием нужно быть абсолютно отбитым ебанатом, который запизделся по ходу дискуссии ;)ладно там тервер или дискретка, она нужна почти всем, но геометрия кто то запизделся чуточкукороче, разбирайтесь, хотя понятно, что тут школьник с пятеркой по геометрией обосрался, защищает марь ивановну, у которой он любимчик
Заебали срать, ну.
>>658622О чем говорить с тем, кто не осилил уравнение окружности? Просто умри, мразь.
>>658622>стена текста с БОЛЬЮ в каждом посте>кто то запизделся чуточкусовсем не чуточку
>>649344 (OP)Зашел в тред, чтобы узнать, зачем вы хотите похищать питон.
>>658652обосрался, обтекай, маняя вообще мимокрокодил и геометрию я знаю, как и кучу других мат.дисциплин меня аж перекосоебило от громкого заявления, что без геометрии не получится писать код это несколько несвязанные между собой дисциплины а ты петушок с клювиком :^)
>>658658Никто не говорит, блядь, что для любого кода требуется знание геометрии. Смысл в том, что с долбоебом, не владеющим школьной программой, никто вменяемый не будет взаимодействовать, а тем более что-то там советовать/помогать. Это блядь базовые навыки, как чистить зубы, и не гадить под себя. И не коси под другого анона.
>>658658>я вообще мимокрокодил и геометрию я знаю, как и кучу других мат.дисциплин эти маневры
>>658658>это несколько несвязанные между собой дисциплинырюзске ты тоже хуево осили. умри уже, мразота.
>>658657>зачем вы хотите похищать питонДобавить макросы с AST и легкую кодогенерацию
>>658676>>658672>>658658Откуда вы такие натекли?
>>658670>Никто не говорит, блядь, что для любого кода требуется знание геометрии. >Не можешь в геометрию - не сможешь и код писать.ну такое, обосрался чуток тыа насчет базовых навыков и уж тем более школьной программы - все зависит от области применения, мне в экоме нужен онли матстат, тервер и дискретка, ну иногда диффуры, другое не применяют, это не значит, что в толопогии они пригодятсяу тебя фундаментальные заблуждения на уровне дауна т.к. школьная программа опять же может пригодиться в разных областях, я химию не знал вообще и биологию они мне не нравились и я их не учил, а вот матан люблю, ну по крайней мере понимаю>>658676где ошибка, петушок с клювиком, знаков нет это да я их не ставлю (точнее иногда ставлю), а вот по орфографии - все правильно. тут ты обосрался при всех, лал
>>658683Пиздец блядь, вот тебе урок орфографии:так пишет говно без мозга:>это несколько несвязанные между собой дисциплинывот так пишет хомо сапиенс:>это нисколько не связанные между собой дисциплины
>>658687или>это несколько не связанные между собой
>>658687тут шкет не знает про правописание причастий и прилагательных
>>658683Научись читать, говнюк. Я не пишу, что школьная программа пиздец как нужна полностью и каждый день. Я пишу, что уебыш, не осиливший в 6 классе геометрию, должен быстро уверенно пиздовать в макдак говорить "Свободная касса", или быть переработанным на метан в случае копротивлений. Так понятней, мразота?
>>658691Блядь, деепричастие, лол.
>>658696понятней, но у тебя опять же заблуждения на уровне даунаумение разбираться в школьной программе по тому или иному предмету зависит от области знаний, в которой ты работаешьты вряд ли сможешь раскидать мне таблицу наследования рецессивных генов, а это проходят классе в 10, но это и не нужно тем кто не связан с медициной так что обтирай трусики от какашек>>658697>несвязанные >деепричастиебляяяя, давай в пятый класс, там выучишь про наличие полных форм, зависимые слова, возможность замены синонимом и т.д.
>>658697>Какие? Что сделанные?>ДеепричастиеУгостись, а потом иди подыхать в подъезд. Он еще тут учить кого-то вылез, блять.
>>658702Да, тут обосрался, таки причастие.
>>658698>умение разбираться в школьной программеНе нужно прямо сейчас уметь разбираться во всей школьной программе. Я, например, хуй сейчас распишу энергетические уровни, хотя в соответствующее время делал это как нехуй.Проблема осилить уравнение окружности в 5м классе — вполне достаточный признак имбецильности.
>>658707таки 2 варианта:>нисколько не связанные>несколько несвязанные
>>658712ну это да%здесь должен быть список из пары тысяч уравнений, понятий, правил, методов, задач и т.д, неосиляторство которых является признаком имбецильности%мы скорее подходим к вопросу о гуманитариях и технарях
>>658719ой, у нас тут покакали сами себе в рот)ну хоть признался честно не стал дальше цирк устраивать
>>658724а подробнее?>нисколько не связанныераздельно, т.к. `нисколько` усиливает отрицание>несколько несвязанныетаки не с причастием в общем случаепроблемс?
>>658730я в общем о том, что ты покакал себе в рот, спизданув про то, что у меня там ошибкано ты молодец, что не стал отрицать, да еще и полез правила поискал, нашел и сам признался, что ошибки не былохотя вопрос непринципиальный
>>658731>спизданув про то, что у меня там ошибкаувлекся косплеем Луговского, споткнулся на `несколько` сраспарсил как нескОлько, бывает
>>658251>>657889А исходники?
>>658712Не нужно прямо сейчас уметь разбираться во всей школьной программе. Я, например, хуй сейчас распишу уравнение окружности, хотя в соответствующее время делал это как нехуй.Проблема осилить энергетические уровни в 10м классе — вполне достаточный признак имбецильности. Ну ты понел.мимо
>>658374>Можно было обернуть место, где у тебя инициализируется игровой мир, перезапуском и его уже дергать без переинициализации sdl.Я так и делал же.>with-slot'ом лучше не злоупотреблять. Не принципиально. Сделал я себе макрос на with-accessors уровня with-slots, чтобы не писать по 10 раз одно и то же. Суть проблемы в том что я переименовал/выпилил свойство из класса и рефакторинг этого дерьма нихуя не приятен.>>658794Оформлять надо. Пока лень.
>>658828Разве slime-who-calls не находит ацессоры по коду?
>>658836Хз, не пробовал. Хочется статическую типизацию, чтобы убрал поле из класса и код не соберется, показывая каждую строчку где оно используется, но тут уж либо-либо.Раст что-ли пощупать? Там и макросы есть вроде как.
>>658852Щупал, но мне не понравился. Ебля с этими владениями памяти напрягает похлеще лифтинга монад в хаскеле.Попробуй лучше ocaml. Там тебе и макросы (хотя они отличаются от лисповых и вообще я их не осилил), и ФП, и ООП, и ебли с типизацией и мутабельными данными нет.
>>658873Да в целом я пока общелисп буду дальше палочкой тыкать. Уж слишком гомоиконность с макросами хороша.
>SBCL compiles by default: even functions entered in the read-eval-print loop are com‐>piled to native code, unless the evaluator has been explicitly turned on. (Even>today, some 30 years after the MacLisp compiler, people will tell you that Lisp is an>interpreted language. Ignore them.
>>658873Что скажешь за окамл? Прочитал статейку на вики. Увидел ML/haskell и ;;Возможность городить императивную лапшу порадовала.
>>659060Блядь, а вот это проблема:> SBCL, like most (maybe all?) implementations of Common Lisp on stock hardware, has> trouble passing floating point numbers around efficiently, because a floating> point number, plus a few extra bits to identify its type, is larger than a machine> word. (Thus, they get "boxed" in heap-allocated storage, causing GC overhead.)> Within a single compilation unit, or when doing built-in operations like SQRT and> AREF, or some special operations like structure slot accesses, this is avoidable:> see the user manual for some efficiency hints. But for general function calls> across the boundaries of compilation units, passing the result of a floating point> calculation as a function argument (or returning a floating point result as a> function value) is a fundamentally slow operation.Я хочу opengl гонять, а там без флоатов никуда.
>>659063Посоны успокоили, мол простые флоаты на х64 все равно не боксят, да и вообще векторы во все поля.
>>659061Написал текст, подумал, удалил. Окамл довольно хороший язык, но у него нихуя нет. А если ты под виндой, то там у него нихуя нет в квадрате. Зато там есть макросы, которые позволяют перепердолить язык, как тебе хочется (я пока в них не смотрел), и производительность почти как у крестов.
>>659061Ну, если пересаживаться на окамл после хаскеля, то первым делом в глаза бросается отсутствие тайпклассов, от чего в стандартной библиотеке ты можешь увидеть +. -. /. для флоатов и + - / для интов, что немного напрягает при написании числодробилок, т.е. ad-hoc полиморфизма нет (если не считать ООП, которое в языке стоит немного особняком), только параметрический. Но это отчасти компенсируется системой модулей, функторами (параметризируемыми модулями).Стандартная библиотека - говно. Такое ощущение, что её когда-то примерно на половину не успели доделать, а потом просто забили. Но существуют замены ей: batteries и core от jane street.Сборщик мусора многопоточный они не осилили, unboxed-типов не завезли.Ситуация с библиотеками примерно как у общелиспа. Может чуть хуже.>>659148>и производительность почти как у крестов.Ну, до крестов ему далековато. Немного быстрее sbcl.
>>659148>Зато там есть макросы, которые позволяют перепердолить языкЭто не совсем макросы в лисперском понимании. Они представляют из себя расширения препроцессора.https://en.wikipedia.org/wiki/Camlp4#Example
https://github.com/search?p=1&q=stars%3A%3E1+language%3Aocaml&type=Repositories&utf8=%E2%9C%93Лицокнига первонах
>>659293>stars:>1 language:ocaml>We’ve found 2,375 repository results >stars:>1 language:common-lisp>We’ve found 2,825 repository results
>>659314При этом по звездам (читай лайкам -> размеру сообщества) лисп печально всасывает.
>>659341Ну, звезды - не показатель. Вангую, что больше половины звёзд ставили праздные зеваки, которые прочитали где-то на хакерньюс о новом суперпроекте от лицокниги.
>>659343И то верно.
Поле :type у слотов классов имеет хоть какое-то значение?
>>660819>as the CLOS slot types are not available for the type inferencer, nor do CLOS slot types provide any efficiency benefits.Нашел. sbcl их только для проверки типов может использовать, но не для вывода типов.
Аноны, поясните. Какая крупная прога написана полностью на лиспе?
>>661095https://en.wikipedia.org/wiki/Maxima_(software)
>>661095https://github.com/search?utf8=%E2%9C%93&q=stars%3A%3E1+language%3Acommon-lisp&type=Repositories&ref=searchresults
>>661129https://github.com/metawilm/cl-pythonВо! Что я нашел
>>661128Охренеть. Тут 90% посетителей младше этой проги. Спасибо.
Есть реализация умеющая компилить под ведроид?
>>661162Под arm умеют почти все. Но встроить в jvm получится только ecl и некоторые коммерческие (mocl, allegro, lispworks).
>>661170Хочу попытаться собрать >>657889 под ведро.
>>661174Интересно будет посмотреть. Только учти, ecl ещё не научился в кросскомпиляцию.
>>661153Как и емакс.
>>661174Ой да чет впизду. Слишком дохуя гемороя.
>>661241https://www.youtube.com/watch?v=ApXVNPXibaU
>>662291Именно. Попробуй сам если хочешь.
>>662291Фу, какая неприятная дама.
Господа, делал задачку из сиспа, а она не хочет работать. Концептуально - вроде правильно. Сначала считает длину, потом берет список, найденную длину как n-1 (список же идет с нуля) и рекурсивно считает, по идее должно возвращать последний элемент. Но не работает. В чем трабл, как вы думаете?Текст из сиспаУпражнение 2.17.Определите процедуру last-pair, которая возвращает список, содержащий только последнийэлемент данного (непустого) списка.(last-pair (list 23 72 149 34))(34)https://repl.it/Bpk7/1
>>665036user=> (defn last-pair [arg] (list (last arg)))#'user/last-pairuser=> (last-pair (list 23 72 149 34))(34)
>>665036Он ругается, на выражение (= n 0)Он ждет число в n, но у тебя вместо числа замыкание.
>>658852>Раст что-ли пощупать? Там и макросы есть вроде как. Они там куцые, как дженерики по сравнению с темплейтами. Насколько я понял, даже факториала не посчитать, просто шаблонные подстановки кода. Но там еще плагины для компилятора можно писать, там уже есть тьюринг полнота.
>>665297>Но там еще плагины для компилятора можно писатьНда, с таким лишний раз связываться не захочешь.
>>649344 (OP)Зачем питон забрали? Верните на место!
>>665405Ещё спасибо скажешь.
Поддержите лисп, товарищи!http://steamcommunity.com/sharedfiles/filedetails/?id=631802657
>>665642Дай ссылочку на свежий билд, а то так и не поиграл.
>>665774Только под винду, потому что под линь лень собирать в кучу .soЕсли надо, могу собрать под линь, но либы надо будет доставлять через пакетный менеджер или руками.http://tatrix.org/public/games/lispstone.zip
Ковырял кто-нибудь qtools-ui?
>>666666
Вот гадость! Не успел
Палю годноту: http://franz.com/support/documentation/10.0/doc/basic-lisp-techniques.pdfДобавьте в шапку, чтоль.
>>669762Лучше сам добавь, а то к бамплимиту опять забудется.
>>669781Такими темпами бамплимита мы не дождемся.
>>672407Ну, у нас тут всё-таки не перезвоним-тред, чтоб перекатываться часто.
>>672704Ну так-то да. Нужна тема для обсуждения что-ли.
>>669762>Basic Lisp Techniques> David J. Cooper, Jr.> March 19, 2003>March 19, 2003>2003Суть некроговна без задач.Бамплимита они, блядь, ждут.
>>672911По меркам лиспа, это относительно свежая книга.Иди куда шел, смертный.
>>672914А ты бессмертный дохуя?13 (ТРИНАДЦАТЬ!) лет прошло, всё так же тормозит и не имеет ни вменяемых компиляторов, ни библиотек.ЗАЧЕМ???Зачем вам это окаменевшее говно?Чтобы показать какой ты ХАКЕР? Чтобы все охуели? Фанаты некроговна похожи на идиота из Goat.se, который умеет из очка делать бездонное дупло. Это невероятно выглядит, этого очень трудно достичь, ЗАЧЕМ это делать со СВОИМ очком?
>>672920Может ты еще покукареашь на "The C programming Language"?
>>672911А что такого? На общелиспе писали ещё в те времена, когда твоя мамка была молодой девчушкой.Удивительно, но спустя столько времени он всё ещё остаётся современным, в отличие от твоей мамки.
>>672920>13 (ТРИНАДЦАТЬ!) лет прошло, всё так же тормозит и не имеет ни вменяемых компиляторовЛолчто? Вменяемыми компиляторы и 13 лет назад, и 15, и даже 20.А библиотек - да, не очень много.
>>672920Каких именно библиотек тебе не хватило? В чем невменяемость SBCL/Clozure?>Чтобы показать какой ты ХАКЕР? Чтобы все охуели?Это, конечно, хорошо, что у тебя есть хотя бы такая мотивация, но у людей могут быть другие причины, представь себе. Ты бы смог их понять, если бы попытался немного вникнуть в предмет обсуждения, чего ты не сделал, судя по>всё так же тормозит0/10, try harder m8
>>672941Залетный кукарека, что с него взять.
Решил пройти SICP, скачал схем отсюда https://www.gnu.org/software/mit-scheme/ .Не могу понять как им пользоваться, слишком олдскульно.Дайте советов, спасибо.
>>673340drracket качай
>>673348Так и сделал, но не будет никаких несоответствий с SICP?
>>673351Выставь язык r5rs и всё будет нормально.
>>673359Спасибо.
>>673365Вернулся. Первое задание сицпа, сума квадратов наибольших двух чисел из трех возможных.Ебаные скобочки(define (square x) (* x x))(define (sumofsquares x y) (+ (square x) (square y)))(define (largest x y z) (sumofsquares (cond ((and (>= x y) (>= x z)) x) ((and (>= y x) (>= y z)) y) (else z)) (cond ((and (>= x y) (<= x z)) x) ((and (>= y x) (<= y z)) y) (else z))))
>>673497У тебя ошибка. Ты получаешь в результате сумму квадратов наибольшего числа (т.е. 2 * max²), а не двух наибольших.
>>672941>SBCL>Последняя версия 28 июня 2015Ну хорошо хоть не 1985.>другие причины5й тред спрашиваю, хуею с заплесневелых мозгов некрофилов.
>>673529>Ну хорошо хоть не 1985.Это форк cmucl, первая версия которого была в ~85 году. Сам cmucl тоже вроде живой, недавно даже релиз выкатили.
>>673529>5й тред спрашиваю, хуею с заплесневелых мозгов некрофилов.Алсо, что именно ты спрашиваешь? Я, например, в твоем набросе вопросов не вижу.
>>673529>Последняя версия 28 июня 2015Давненько в википедии информацию не обновляли. С тех пор семь релизов успело выйти.
>>673533Реально рабочие проекты есть?Работают? Разрабатываются? Именно проекты, а не полтора прыща на GitHub.Вакансии есть? Востребован?Коммьюнити есть? На любом языке, главное чтобы >1.5 быдлокодера.Вектор развития? Библиотек нет уже 30+ лет - а через 30 уже будут?
>>673548>The most recent version is SBCL 1.3.3, released February 29, 2016Действительно, снимаю свой говнокомментарий.
>>673551>Реально рабочие проекты есть?Есть.>>673551>Работают? Да.>>673551>Разрабатываются? Да.>>673551>Именно проекты, а не полтора прыща на GitHub.Да.>>673551>Вакансии есть? Мало.>>673551>Востребован?Мало.>>673551>Коммьюнити есть? Не слишком большое.>>673551>Библиотек нет уже 30+ лет - а через 30 уже будут?Они и раньше были. И сейчас есть. За это время уже несколько раз успели полностью обновиться (в том смысле, что старые выкинули, написали новые).Алсо, с появлением quicklisp'а ситуация с библиотеками (точнее, с их доступностью) заметно улучшилась.
>>673559>Есть>Да>Да>Да>ДаСтранно, а гугл не находит. Неужели ты пиздишь?
>>673569Возможно, ты просто не умеешь гуглить.
>>673559>с появлением quicklisp'аНе Quicklisp, а Quicklisp beta.Beta уже в назвнании - это разве не пиздец? Релизом она станет лет через 20-25, хотя, как упомянул этот >672914 упоротый, по меркам лиспа это все еще будет относительно быстро и свежо.
>>673576Там от беты только название.
>>673570Толст, некрфл.Примеры есть?>>673533Пиздец, вопросы есть, ответов нет, некрофилы требуют еще вопросов.Ок, задам их еще раз в 6м треде.Может там появится кто-то без мозгоплесени.
>>673582>Примеры есть?http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.htmlНу на
>>673582Можешь ещё проектики всяких CMU поискать. Или лиспворкс в промышленности. Или всякие семантиквебы на аллегро. Да или просто йоба-сайтики.Только зачем тебе это?
>>673582Ну что? Твоё любопытство удовлетворено?
>>673525Я тебя не понял.
>>673631А, мне показалось, что у тебя условия одинаковые. Можно было и проще, кстати.[code lang=scheme](define (largest x y z) (cond ((> x y z) (+ (square x) (square y))) ((> z y) (largest x z y)) ((> y x) (largest y x z))))[/code]
>>673636>(> x y z)Обосрался немного. Должно быть (>= x y z)
>>673642А повторов не много ли?
>>673653М?
>>673655Ну сортировать еще несколько раз, чтобы сработало первое условие.
>>673658Максимум две перестановки будет.
>>673660А, не. Три.
>>673627Ты только со школодебилами дело имеешь? Я изучаю ссылку. Одну, как ответ на все мои вопросы, наверное.
>>673672Нет, почему. Бывают и нормальные люди. Но сегодня, увы, вместо них ты.
>>673529>>другие причины>5й тред спрашиваю, хуею с заплесневелых мозгов некрофилов.Скорость разработки. Выразительность. Любая фича любого другого языка реализуется в CL за полчаса под пивас (ок, почти любая, call/cc не завезли, увы). Производительность, при грамотном использовании макросов и деклараций типов, отсасывающая, разве что, C/C++. Интерактивная разработка, загрузка и компиляция нового кода без остановки программы, встроенные средства для дебаггинга и интроспекции. Максимально гибкая объектная система, породившая такие языки как Python или Ruby (являющиеся, по сути, недолиспами с инфиксным синтаксисом)."Некрофил с заплесневелыми мозгами" -- тот, кто использует один из вариантов высокоуровневого ассемблера, вместо языка, опередившего свое время и повлиявшего на дизайн практически всех мейнстримных ЯП.
>>649344 (OP)http://okmij.org/ftp/Scheme/В шапку можно добавить, я считаю.
>>674091Объясни, мне тупому что это за call/cc такой, и почему все так жалеют о том, что его не завезли?
>>674091> языка, опередившего свое время и повлиявшего на дизайн практически всех мейнстримных ЯПНу збс, опередил свое время 50 лет назад, повлиял на всех, зачем его сейчас-то использовать? Серьезно, последний стандарт общелишпа вышел 22 года назад (и уже тогда был устаревшим мессом, собранным из 10 разных версий прямиком из 70х), даже няшная за это время успела два новых выкатить. Если уж браться за лиспы сейчас, то за схему/ракет/кложуру, CL стоит оставить легасикрестьянам.
>>674113Представь, что это setjmp/longjmp, сохраняющий состояние стека. Или "first-class goto".>>674177А что именно тебя в стандарте не устраивает кроме отсутствия call/cc, TCO и того, что это lisp-2? Все, что должно, по идее, быть в стандарте (сокеты, многопоточность, MOP), есть во всех живых имплементациях, врапперы для их портабельного использования тоже есть. Такой-то CFFI есть. Хуле еще надо?>Если уж браться за лиспы сейчас, то за схемуСхема -- не лисп. Схемка, конечно, няшка и май вайфу, но тут люди про серьезные проекты™ говорят, а как их писать, когда есть стандарт, в котором почти нихуя и зоопарк несовместимых между собой реализаций -- хуй знает.>кложуруТогда уж браться за обычную жабу и не страдать хуйней.
>>674224> Хуле еще надо?Надо выкинуть все старье (типа динамических переменных и car/cdr) и дублирующий функционал, привести все к одному виду (типа -p суффиксов у предикатов), OOP должен быть интегрирован с остальным языком, а не быть левой приблудой, добавленной в последний момент, юникод должен быть в стандарте, макросы должны быть гигиеничными, стандартная библиотека должна быть больше.>сокеты, многопоточность, MOP есть во всех живых имплементацияхВ каждой со своими тараканами и через свои костыли.> 2016> CL> серьезные проектыЛiл.
>>674091>call/cc не завезли, увыКак не завезли? cl-cont же
>>674236>старье>типа динамических переменныхСхемер что ли? С чего ты взял, что это старье? Одна из самых удобных фишек лиспа.>OOP должен быть интегрирован с остальным языкомОно и так интегрировано. Другое дело, что в стандартной библиотеке практически не используется.>юникод должен быть в стандартеХотел было возразить, но оказалось, что его и правда нет в стандарте. Тем не менее, во всех живых реализациях заподдержку завезли с два десятка лет назад.>макросы должны быть гигиеничнымиА, и точно схемер. Покажи, как анафорические макросы с гигиеной реализуются.>стандартная библиотека должна быть большеЕщё больше? >В каждой со своими тараканами и через свои костыли.И много ты их разглядел через closer-mop или usocket, которые де-факто стандарт?
>>674236https://github.com/cl21/cl21А вообще, пилится замена стандартной библиотеке с MOP, gray-steams, alexandia и т.д.Но, как у них сказано>CLOS-based functions and MOP -- write fast, tune laterоно пока что только write fast.
>>674417> Схемер что ли? С чего ты взял, что это старье? Одна из самых удобных фишек лиспа.Их оставили для совместимости со старым кодом, со времен, когда lexical scoping еще не утвердился, они не нужны и регулярно приводят к багам. Посмотри как elisp-ры с ними страдают.> Другое дело, что в стандартной библиотеке практически не используется.Вот-вот.> Покажи, как анафорические макросы с гигиеной реализуются.Анафорические макросы нахуй не нужны в реальной жизни, зато отсутствие гигиены приводит к куче проблем. Максросистема общелиспа это еще один кусок говна прямиком из 60х, оставшийся для совместимости, хотя уже в 80х все понимали, что надо делать как в схеме.> Ещё больше? Меньше в плане ненужной/повторяющейся/устаревшей хуиты и больше в плане функционала и интегрированности, типа современной STL или даже BCL.> которые де-факто стандартИ вот так 20 разных либ, разбросанных по интеренетам, и каждая - де-факто стандарт для отдельной кучки лишпохачкеров.>>674444Он ожил штоле? Он же года два как мертвым лежал. Но если ожил то збс, но это надо было делать 15 лет назад и комитетом, не столько добавляя сколько выкидывая, переписывать учебники, все дела. Я чую это благое начинание так и останется поделкой для полутора хачкеров.
>>673585>>673627Этот текст один сплошной ЛОЛ. Ты хоть сам читал его?На полторы простыни автор высказывает следующие тезисы:1. На Лиспе не хватает функционала2. На Лиспе нет того что нам нужно3. Мы все это дописали сами, изобрели костыли с колесом4. Держим хуеву тучу лисперов, чтобы это все работало5. ЛИСП ОХУЕНЕНН!!!1111Автор - невероятный идиот, блядь как я смеялся. Ты хоть сам читал по ссылке?Это ты привел пример реально рабочих проектов? Ты упорот?
>>674463>они не нужныМне нужны. Без них многие вещи писать сложнее.>регулярно приводят к багамОдна область видимости для функций и переменных тоже к багам приводит. Да и про динамическую типизацию тоже такое нередко слышишь. Но ничего, люди же справляются.>Посмотри как elisp-ры с ними страдают.Елиспы страдают не с динамическими, а без лексических переменных. Не путай.>Анафорические макросы нахуй не нужны в реальной жизниЯ тебя не спрашивал: нужны они или нет. В этом вопросе твое мнение меня не интересует.Я просил показать реализацию.>зато отсутствие гигиены приводит к куче проблемСтранно, что в реальной жизни они не попадаются.>И вот так 20 разных либ, разбросанных по интеренетамОбновляй методичку. Уже давно методом естественного отбора поотсеивались всякие uffi, metabang и т.д.>каждая - де-факто стандарт для отдельной кучки лишпохачкеров.Это ты про dwim.hu что ли? Эти странные уже прекратили свою деятельность.
>>674097Что это и нахуй надо?
>>674501Насколько я помню, автор описывал проблемы, с которыми им приходилось сталкиваться.>Это ты привел пример реально рабочих проектов?А он не реально рабочий или что? Думаешь, эти хитрецы наняли ораву индусов и посадили обрабатывать запросы, а сами сказали, что всё написано на лиспе?
>>674501Проглядел статью и возникло пару вопросов.Ты точно английский разумеешь? И ту ли ты статью читал?
>>674504> В лиспе уже 60 лет можно сделать Х, а в других языках - нельзя.> Но ведь Х не нужен, усложняет использование языка и приводит к плохо отлаживаемым проблемам. Развитие PLT с 70х по настоящее время показало полную несостоятельность такого подхода и подложило множество гораздо более продуманных, удобных и безопасных альтернатив. Остальные языки давно уже отказались от Х как от устаревшей технологии и вовсю пользуются этими альтернативами.> Я тебя не спрашивал: нужны они или нет. Мне нужны. В реальной жизни эти проблемы не попадаются. Ничего, люди же справляются. В этом вопросе твое мнение меня не интересует. Я просил показать реализацию X в других языках.Каждый раз.
>>674519Ух какой ты склизкий и вертлявый.
>>674509>наняли ораву индусов и посадили обрабатывать запросОни пишут, что наняли ораву бородатых прыщеслизней и посадили изобретать костыли и колеса. Это гораздо элитней, да.
>>674516>Ты точно английский разумеешь?Судя по твоим вопросам, английским я владею на недосягаемом для тебя уровне.
>>673585Автор с гордостью декларирует, как они любят подбирать язык под задачу. А потом описывает трудности, решение которым - Python. Но они используют Лисп. Дебилы блядь.
>>674570Боже, откуда ж вы набежали-то такие? Го-тред закрыли что ли?
>>674558И сколько их там? Не вижу в статье упоминаний.
>>674236>выкинуть все старье (типа динамических переменных и car/cdr)Не используй.>привести все к одному виду (типа -p суффиксов у предикатов)Приведи.>OOP должен быть интегрирован с остальным языком, а не быть левой приблудойлiлшто>макросы должны быть гигиеничнымиНе используй негигиеничные. Или руки чешутся, боишься сорваться ненароком?>юникод должен быть в стандарте>стандартная библиотека должна быть большеНу какой же это схемер -- обычный гвидосектант.>>674327Костыль на макросах, раскрывающийся в абсолютно не пригодную к отладке лапшу.>>674505Всякие прикольные штуки, на схеме написанные и все такое. Чтоб было, а хуле нет?
>>674695>можнозделать
>>674763>нинужна
>>674695>Костыль на макросах, раскрывающийся в абсолютно не пригодную к отладке лапшу.Да, есть такое. Но для применения вполне пригодна.Алсо, разве встроенный call/cc легче поддается отладке?
>>674763Сделай. Никто не будет пилить твой вишлист фич, без которых сообщество прекрасно обходится больше двадцати лет.
>>674811Ну, стек-трейсы вменяемые хотя бы.
https://github.com/Bike/compiler-macrohttps://github.com/Bike/compiler-macro/blob/master/test/tabasco-sort.lispУра, кто-то не поленился и запилил. Джва года собирался.
https://common-lisp.net/project/parenscript/Кто-нибудь пользовался?
>>677786http://www.youtube.com/watch?v=aKYzfew1pnEСам не пользоваться, но вроде выглядит вполне юзабельно.Даже обертки для реакта и жквери нагуглились.
>>677885Ага, кажется, я это уже видел. Ладно, попробуем-с.
>>677885Кстати, жтот же товарищ замутил cl-collider, клиент для SupperCollider: http://www.youtube.com/watch?v=xzTH_ZqaFKIПытался заставить его работать, но, увы, безрезультатно. Хотя scide работает и пищит.
>>678040Вчерашний видосhttp://www.youtube.com/watch?v=PqwuIfl-G1w
http://www.youtube.com/watch?v=_B_4vhsmRRI
>>678040Странно, это суперколлайда даже в репах нет.>>678045Лисп-диджей, лол
>>678040лол, что это за скобочоки (())))??
>>678316Круглыми, кажется, называются. А что? Не встречал таких?
Сколько шуму-то этот вулкан наделал. Аж в мир лиспа просочился.https://github.com/3b/cl-vulkan
>>678307В арче есть, например. Что у тебя за дистр?
>>678563гента
Эх, все таки большое сообщество кложуры и куча готового дерьма под неё подкупают. Перебороть что-ли отвращение к джаве?Отговори, меня, анончик, скажи мне что общелисп пизже.
>>678655$ time lein helpLeiningen is a tool for working with Clojure projects.Several tasks are available:change Rewrite project.clj by applying a function.check Check syntax and warn on reflection.classpath Print the classpath of the current project.clean Remove all files from project's target-path.compile Compile Clojure source into .class files.deploy Build and deploy jar to remote repository.deps Download all dependencies.do Higher-order task to perform other tasks in succession.help Display a list of tasks or help for a given task.install Install the current project to the local repository.jar Package up all the project's files into a jar file.javac Compile Java source files.new Generate project scaffolding based on a template.plugin DEPRECATED. Please use the :user profile instead.pom Write a pom.xml file to disk for Maven interoperability.release Perform :release-tasks.repl Start a repl session either with the current project or standalone.retest Run only the test namespaces which failed last time around.run Run a -main function with optional command-line arguments.search Search remote maven repositories for matching jars.show-profiles List all available profiles or display one if given an argument.test Run the project's tests.trampoline Run a task without nesting the project's JVM inside Leiningen's.uberjar Package up the project files and dependencies into a jar file.update-in Perform arbitrary transformations on your project map.upgrade Upgrade Leiningen to specified version or latest stable.vcs Interact with the version control system.version Print version for Leiningen and the current JVM.with-profile Apply the given task with the profile(s) specified.Run `lein help $TASK` for details.Global Options: -o Run a task offline. -U Run a task after forcing update of snapshots. -h, --help Print this help or help for a specific task. -v, --version Print Leiningen's version.These aliases are available:downgrade, expands to upgradeSee also: readme, faq, tutorial, news, sample, profiles, deploying, gpg,mixed-source, templates, and copying.real 0m58.031suser 0m44.256ssys 0m2.000sОтговорил?
>>678703Фу, распидарасило.>>678655>$ time lein help>real 0m58.031s>user 0m44.256s>sys 0m2.000s
>>678703Лол. Серьезно?Еще читал что JVM охуевает частенько от лиспо-стиля разработки с постоянными перезагрузками классов и прочего дерьма.
>>678709Ну, ros-то всё-таки на сишке.>Серьезно?А то! Слава жвм!
>>678719И правда на сишке. А почему не на лишпе, интересно.
>>678719Впрочем лиспообразы собранные розвелом запускаются не намного быстрее.
>>678721Чтоб меньше зависимостей для сборки тянуть.>>678722>не намного быстрееВсего раз в 60.
>>678655>Перебороть что-ли отвращение к джаве?А стоит ли оно того? А ведь она там всюду.[code lang=clojure](def IPaddress "10.71.18.81")(def port 1500)(def socket (Socket. IPaddress port))(println "Connected:" (.isConnected socket))(def in (DataInputStream. (BufferedInputStream. (.getInputStream socket))))(def out (DataOutputStream. (BufferedOutputStream. (.getOutputStream socket))))(def command "Some string")(println "Input:" command)(.writeUTF out command)(.flush out)(def response (.readUTF in))(println "Output: " response)[/code]>скажи мне что общелисп пизже. Общелисп пизже.
>>678736>>678703Убедили чертяки. Здесь все мои друзья.
Писал сегодня скриптоту на лиспе, хотя обычно это делаю на скриптовых языках. Внезапно неплохо. blackbird для асинхронщины понравился.
>>679045Тьфу, блядь. Недописанным отправилось. Ладно, похуй.
>>679067Нет уж, дописывай.
Решил таки пощупать палочкой кложуру. В оп-посте рекомендуют The Joy of Clojure, а автор emacsrocs и parens of the dead предлагает http://www.braveclojure.com/Что скажете, с чего лучше начать?
>>679923С общелиспа
>>679923Пиздец. Блять. Но, сообщества общелиспа мертво 8(
>>679943Секунда с небольшим? Хуя у тебя аппаратище. Мой калькулятор целую минуту надрывается, чтобы высрать хелп.
>>679958Обычный апарат: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHzНо, ебаный по голове, секунду с хером только для того, чтобы выдать хэлп, это какой-то нездоровый пиздец.
>>680211Нда.
>>679958У меня около 25 секунд, лол. i3 блядь
>>680238Первый пик без ql, второй с.
Оно даже скомпилированное тормозит.
Короче я считаю что нам нужен новый лисп, без кучи наследственного говна и протухших библиотек: CL21++
>>680256Нет, правда. Никто те считает так же?
>>679923Чуть-чуть почитал breaveclojure. Неплохо расписали как настроить окружение и про емакс. Дальше забил хуй, переключился на joy of closure. Прочитал первые две главы — через каждое слово java, java, java, java.Бектрей сидора-пидора выглядит модно-мололежно, но по информативности, как про мне еще хуже слайма.
>>680256Ну, я думаю, cl с батарейками вполне на современный лисп тянет. А с ридер макросами из cl21 так вообще заебись.
>>680503А что там с отладкой? В слайме-то ты хотя бы бектрейс пощупать можешь, перезапуск вызвать. А тут что?
>>680517А хер его знает пока.
>>680510Вот что меня раздражает в экосистеме общелиспа, так это то, что есть миллиард заброшенных проектов. Из-за этого приходится руками перебирать кучу дерьма, в поисках того, что хоть как-то поддерживается.Может я просто не знаю где искать либы?
>>680614http://quickdocs.org/Здесь, например.
Есть тут кто решает задачки из SICP?
Анон, не разберусь с деревьями из SISP'а, если не трудно - помоги. Решение задачки я просто нагуглил, вот оно:Процедура fringe будет производить обход дерева в глубину слева направо и собирать узлы в порядке обхода в один список. Ее структура очень похожа на структуру count-leaves. При рассмотрении каждого узла также рассматриваются три случая: пустое дерево, листовой элемент и нелистовой элемент (поддерево).-Для пустого дерева на входе мы генерируем пустой список на выходе.-Для листового элемента на входе генерируем список из этого одного элемента.-Для нелистового элемента возвращаем список, составленный из списка для его первого поддерева, к которому добавлен с помощью append результат для этого же элемента без первого поддерева.(Что это значит?)Сам код решения:(define (fringe tree) (cond ((null? tree) (list)) ((pair? tree) (append (fringe (car tree))(fringe (cdr tree)))) (else (list tree))))(fringe (list 1 (list 2 (list 3 4)) 5))Что происходит, когда задача "доходит" до момента с (list 2(list 3 4). По идее (list 2(list 3 4) и 5 - не являются парой, и что происходит? Я просто уже часов пять лбом бьюсь и не могу понять, помоги пожалуйста!
>>680674Все уже решили, ты чето слоу
>>680713Так, я тут проверил, (list 2(list 3 4)) и 5 являются парой. Но все равно не могу взять в ум, как так получается, что выводится в результате (1 2 3 4 5).По идее, я так думал, должно вывести (1 (2 (3 4)) 5). Потому что, на первом проходе car = 1, на втором проходе car = (2 (3 4)), на третьем проходе car = 5. Куда подевались скобочки на втором проходе? Я правда нихуя не пойму.
>>680728>на втором проходе car = (2 (3 4))Потом оно идет по второму условию append (fringe |car = 2|) (fringe |cdr = (3 4)|)И так далее.
>>680728В рэкете отладчик есть. Попробуй в нем пошагово прогнать.
>>680759Ебаааать, брат, много красивых женщин тебе и баранов толстых. Оказалось, что логика schem'ы работает не так, как я себе ее представлял. Хотя несколько уебищно и не по сиспу, там такое ну точно не разбирали.
>>680769>там такое ну точно не разбирали.Рекурсию там в самом начале разбирают же. Ну и где-то перед обходом дерева должен был рассматриваться обход списка.
>>680777И рекурсию и обход списка разбирали. Прикол в том, что отладчик не проходит третью строчку до конца, а начинает брать значение car'а и проходится с ним от начала до конца, потом добавляет его в (list tree), потом берет cdr, но от изначального значения и считает его. Это что-то вообще пиздец.
>>680784Короче, в сиспе деревья очень плохо разобраны, как мне показалось. Просто дан пример подсчета количества его листов, а дальше - разбирайся сам, еще и в очень странных приемах, просто ебанись каких странных.
>>680784Попробовал прогнать в отладчике. Да, правда. Рэкет неправильно визуализирует ветку else в cond.Замени там else на (number? tree), тогда визуализироваться будет правильно, хоть и код сломается для нечисловых деревьев.
>>680820Я не понял, в каком месте подставить number?, когда я подставляю его куда-то, у меня наебывается вообще все, лол.
>>680820А, я дебил просто, понял куда поставить. Ну, такое, я особой разницы между этими двумя визуализациями не заметил.
>>680619Там много чего нет, что валяется на просторах гитхаба, увы.
>>680855А этих пидарасов пинать надо, чтобы привели код в подобающий вид и добавились в квиклисп.
>>680880О чем и речь. Хуево с маленьким сообществом.CL21 джва года никто не трогал. Бида.Да и даже если его будут пинать, то у нас тут такая куча легаси, что его адаптация выглядит очень спорно.
>>681000В официальной документации?
>>680256Да. И чтобы без отдельного пространства имен для функций, с обязательным TCO и call/cc чтобы был. Джва года жду такой лисп!
>>681085>чтобы без отдельного пространства имен для функций>и call/cc чтобы былФу, схемер чтоль? У нас здесь такие не в почете.>и call/cc чтобы былНо тогда не будет сигнального протокола с перезапусками и unwind-protect'а. Нахуй так жить?
>>681120>У нас здесь такие не в почете>У нас здесь элитный клуб "3.5 некролиспера"
>>681145Молодой человек, покиньте клуб.
>>681120>Но тогда не будет сигнального протокола с перезапускамиПочему? В чем противоречие, если рестарты можно реализовать с помощью call/cc? Или, если нельзя, объясни, пожалуйста, почему.>unwind-protectНу будет он называться dynamic-wind, какая разница, в самом деле.
Как в др.ракете сделать так, чтобы он мог латех выводить?(define (k n) (* 5 n n)) ----> 5n^2
Бляяять, какая же кложура медленная, это пиздец.
>>681440Посоны, бамп. n: undefined; cannot reference undefined identifier
>>681464> java> java> java> z-z-zz-z--z-z-
>>680253Слабо измерить без времени загрузки JVM?
>>681511И что ты этим хотел сказать?
>>681908Цитата из книжки по кложуре.Через каждое слово java, и тормозит как незнаю что.
>>681945На сл будет быстрее и короче?
>>681947Само собой, что быстрее. Короче конкретно тот пример врядли выйдет. Там же кода практически нет. А вот идиоматичнее - да.
>>682007> Короче конкретно тот пример врядли выйдет.Уже вижу эту нечитаемую простыню.
>>681440Ну подскажите.
>>682012Более нечитабельным, чем на кложуре, вряд ли получится сделать. Разве что если напрямую сишку пердолить через низкоуровневый ffi. Но в здравом уме так никто делать не будет
>>682016Ты что хочешь? Выражения упрощать и в TeX форматировать? Maxima возьми.
>>682047Exercise 1.10. https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2
>>682077Ты про это что ли?>Give concise mathematical definitions for the functions computed by the procedures f, g, and h for positive integer values of n. For example, (k n) computes 5n2.Имеется в виду вручную, а не программно
>>682042Ну не знаю, дружище, на той вебм код вполне себе читаем.
>>682244вся вонь итч против кложуры ток в том что она ТАРМОЗИТ и что ЖАВА. Даже принимая во внимание столь скептические взгляды, это не препятствие чтобы ее использовать. Особенно если ты жава нейтив.
>>682290Ты считаешь что в 21 веке позволительно ТАК тормозить на элементарных вещах?А жава это полный пиздец,. А раз кложура хостед, значит и кложура полный пиздец.
>>682491как ТАК-то? дай замеры тормознутости. Без времени загрузки JVM, офк. кложура хостится на JVM а не на Java, и это большая разница.
>>682517Кого ебет как оно там внутри работает?Консольная утилита которая для того чтобы выдать срану справку жжот процессор почти 2 секунды.Окей, утилиты на этом дерьме писать нельзя, запомнили.А теперь посмотри на видео >>681511На прогретой жвм оно закрашивало 512х512 пикселей так, как будто это жипег с голой бабой по модему.
>>682517>кложура хостится на JVMНаоборот. Кложура (язык) хостится на жаве.Разница и правда большая, но ты её не чувствуешь.
>>682627Приплыли.
>>682644Выплывай.
>>682644Т.е. по-твоему clojurescrpit хостится на v8, а не js, а clojure на jvm, а не java?
>>682666clojure транслируется в жаву? можешь дать выхлоп?нет, не можешьпотому что кложура транслируется в байткодВот кложурскрипт транслируется в жс, а не в байткод.
>>682750Ты путаешь язык и его реализацию. И, похоже, не знаешь, что такое хостед язык.
>>682799Clojure is designed to be a hosted language, sharing the JVM type system, GC, threads etc. All functions are compiled to JVM bytecode.
>>682799ты путаешь язык Java и JVM
>>682805>>682806Исключения, интерфейсы, классы жавы - тоже часть жвм?
>>682815часть JRE
ввожу на sheme https://repl.it/BuuC(define (gsd a b) (if (= b 0) a (gcd b (remainder a b))))а он выдает что процедура remainder не определена, а в SICP написано что эта элементарная процедура присутствует в sheme, что делать?
>>682805ABCL тоже в JVM-байткод компилирует, но CL от этого хостед языком не становится.>>682817Жава то есть
>>682822нет, джава это язык. JRE это коллекция скомпилированных библиотек >>682821схемы бывают разные
>>682821Написать свою реализацию.
>>682821Поставь рэкет или найди другую реализацию с поддержкой r5rs
>>682825Стандартная библиотека частью языка является.
>>682833nyet
>>682821>define gSd a b>(gCd b (remainder)Ты тут не обкакался?
Стоит ли прорешивать каждую задачку в SICP? Просто, скучно пиздец. Вообще, полезная ли книга?
>>683197Как хочешь. Я бы часть попропускал. Книга полезная.
Поясните за Symbolic Data. Почему(quote 2) -> 2(quote (quote 2)) -> ''2DrRacket
>>683332>(quote (quote 2)) -> ''2Видимо, ты сломал свой рэкет и он больше ничего не интерпретирует, а просто выдает то, что ты ввел. (quote x) вычисляется в x, так что (quote (quote 2)) -> '2>>683197Это же мемчик, чтобы ньюфагов траллить, хуле ты. На самом деле, да, полезна, если это первый опыт, связанный с программированием, ну и для расширения сознания, если на схеме/ML/чем-то подобном не писал. Как вводная в разработку компиляторов/интерпретаторов еще может быть. Навыки, улучшающие конкурентоспособность на рынке труда, скорее всего, эта книга не даст, так что можешь не превозмогать, хотя главы с третьей поинтересней будет.>>681166Бамп вопросу! Поясните, кто-нибудь, в чем несовместимость call/cc и рестартов (кроме религиозной)? В GNU/MIT Scheme же завезли и то и то.
>>682828>Написать свою реализацию.в голову пришло только (define (>= x y)(or (> x y) (= x y)))(define (remainder a b) (if (>= (- a ( b a)) 0) (- a ( b a)) (remainder (- a 1) b)))все время выдает нули, задумка такая умножая "a" "b" и каждый раз снижая (-a 1) мы получим положительное число которое будет равно остатку или нуль если делиться без остатка, но вышла хуета
>>683590(define remainder mod)есть функция mod
>>683590(define (ss a b c) (if (> (- a ( b c)) 0) (- a ( b c)) (ss a b (- c 1) )))(define (remainder a b) (ss a b 10))еще чуток наваял
>>683662>define remainder mod)>есть функция modчто ты имеешь ввиду?имеешь ввиду что есть аналогичная элементарная функция?
>>683685да
https://www.twitch.tv/tatricshttp://goodgame.ru/channel/TatriX/Унылый скобкострим. Читаю книжку. Про себя.
>>683590Да ты же наркоман(define remainder (lambda (x d) (- x (* (truncate (/ x d)) d))))
Ананасы, объясните мне одну вещи.Изучаю понемногу ракет и решил запилить что-нибудь простое на sdl.Так вот столкнулся с проблемой. Я совершенно не понимаю как создать указатель, а затем передать его в функцию.
>>683812А зачем тебе создавать указатель? Ты хочешь сдл напрямую через ffi пердолить? Были же вроде нормальные обёртки
>>683852Вот что я нашёл.https://github.com/cosmez/racket-sdl> А зачем тебе создавать указатель?https://github.com/cosmez/racket-sdl/blob/master/sdl/definitions.rkt#L674Например
>>683863Пиздец-то какой. Похлеще кложуры.>Например https://github.com/cosmez/racket-sdl/blob/master/sdl/structs.rkt#L472http://docs.racket-lang.org/foreign/intro.html#(part._.C_.Structs)Должен был сгенерироваться конструктор make-SDL-Event, им создавай. А лучше поищи нормальную обёртку.
>>683968> Должен был сгенерироваться конструктор make-SDL-Eventsdl_event не структура.А как, например, с передачей обычных переменных?https://github.com/cosmez/racket-sdl/blob/master/sdl/definitions.rkt#L242
>>683590на кложуре:(defn remainder [x y] (if (< x y) x (recur (- x y) y)))
>>683973>sdl_event не структура.И точно, не доглядел. Пока не вижу в документации, как с объединениями обращаться.>А как, например, с передачей обычных переменных?А вот не знаю. Попробуй из репла подергать. Думаю, ffi об этом должен позаботиться.
>>683983Можешь пояснить, в чем суть изъебства с recur? Компилятор не может сам определить: вызывает он ту же функцию или другую?
>>683995создатели кложуры посчитали что tco в jvm это как шредингера, поэтому лучше добавить явный рекур, чем обманывать надежды разработчиков на то, что tco оптимизирует их рекурсию. Работает как рекурсия, но не выдает stack overflow.
>>683995Прозреваю, что это явный хвостовой вызов, в скале подобная хуйня. Джавопроблемушки какие-то.
>>684000А при чем тут jvm? Компилятор кложи не может определить хвостовой вызов и сгенерировать соответствующий байт-код?
>>6840051. не всегда2. а если тебе нужна именно хвостовая рекурсия?
>>684003В скале вроде компилятор умеет в TCO.>>684016>1. не всегдаТ.е. они просто не осилили и забили? Типа ебитесь сами с хвостовыми вызовами.>2. а если тебе нужна именно хвостовая рекурсия?Ну и напишешь хвостовую, а компилятор пусть оптимизирует. Зачем лишние сущности-то в языке плодить?
>>684030ты не сможешь знать наперед смог компилятор ее оптимизировать или нет.
>>684030В скале аннотации для TCO. Специфика платформы, судя по всему.
>>684050Если у языка (ВЫСОКОУРОВНЕВОГО ЯЗЫКА!) такой сырой компилятор, что программист должен беспокоиться: "а смог ли он заоптимизировать", то нахуй такой вообще использовать?Да и вообще, это какая-то исключительная ситуация, баг. Наткнулся - ну сообщи разработчикам, пусть исправляют. А вот выпячивать средства оптимизации в язык - не дело.>>684059http://anadea.info/ru/blog/scala-tailrec-optimizationПервая ссылка в гуголе. У него без аннотаций компилятор догадался.
>>684071>>684059>>684050>>684030>>684016>>684005>>684003>>684000>>683995recur - это когда ты хочешь чтобы компилятор кложуры оптимизировал хвостовой вызов, не-recur - это когда ты не хочешь чтобы компилятор кложуры оптимизировал вызовы. При этом их может отпимизировать jvm, но тут никто никакой гарантии не дает, так как жвмов более 9000, и естессно лучше полагаться на recurПРОСТИТЕ МНЕ ГОСПОДА КОМПЬЮТЕРНЫЕ УЧЕНЫЕ И МАТЕМАТИКИ МОЮ БЕЗГРАМОТНОСТЬ
>>684079>не-recur - это когда ты не хочешь чтобы компилятор кложуры оптимизировал вызовыКак можно не хотеть оптимизации?>При этом их может отпимизировать jvmСреди jvm-языков не принято заниматься оптимизациями байт-кода, и они полностью полагаются на jit jvm'а?
>>683973>sdl_event не структура.(malloc _SDL_Event)
>>683863У петушиной схемы есть обертка получше.http://wiki.call-cc.org/eggref/4/sdl2https://gitlab.com/chicken-sdl2/chicken-sdl2/blob/master/demos/basics.scm
>>684106> Как можно не хотеть оптимизации?если бы оптимизация была неявной, такие же воображули как ты возмущались бы "как можно было лишить меня выбора?". Дальнейшую дискуссию на эту тему считаю бессмысленной.> Среди jvm-языков не принято заниматься оптимизациями байт-кода, и они полностью полагаются на jit jvm'а?JVM ориентируется на джаву а не на jvm-языки. В jave нет TCO на уровне компиляции.
>>684172>если бы оптимизация была неявной, такие же воображули как ты возмущались бы "как можно было лишить меня выбора?"Хуйни-то не неси.>JVM ориентируется на джаву а не на jvm-языки.В jvm есть инструкции, позволяющие сделать хвостовой вызов? Судя по существованию recur, они есть. Какие тогда могут быть претензии к jvm?
>>684186ты тупой
>>684301Да и ты, похоже, ничуть не умнее. Ничего более-менее похожего на внятный ответ я так и не услышал.
>если бы оптимизация была неявной, такие же воображули как ты возмущались бы "как можно было лишить меня выбора?".Вот много ли недовольных от обязательной TCO в схеме, интересно было бы узнать.
Хм. Вот в ООП есть наследование, полиморфизм, инкапсуляция и абстракция. А как строить архитектуру на функциональщине?
>>683415Это нарушает моё представление о работе Scheme.(quote (quote 2))Сначала рассчитается (quote 2) = 2Потом подставится в исходное(quote (quote 2)) = (quote 2) = 2Что не так? Почему должно выводить '2?
>>684556(eval '(quote (quote 2))) → (quote 2)(eval '(quote 2)) → 2
>>684562А что в моём неверном понимании работы неверно?
>>684567За один раз снимается только один слой quote
>>684523Ты не совсем по адресу. Лисп является не большей функциональщиной, чем какой-нибудь питон. В cl и clojure ООП даже из коробки есть.
>>684523Просто используются свои средства абстракций: функции, модули (обычные или параметризируемые как в ocaml), классы типов, ADT и т.д.
>>684572>>684578Расскажи про классы типов и ADT.
>>684651https://en.wikipedia.org/wiki/Type_classhttps://en.wikipedia.org/wiki/Algebraic_data_type
>>684671А теперь расскажи своими словами, как ты это все понимаешь.
Предположим мы все-таки решили делать свой лисп с :blackjack и :whores.Это будет лисп-1 или лисп-2 и почему?
>>684933Вот анон вчера спрашивал про ffi рэкета.Поясни, соглашение об именовании продиктовано лисп1-проблемами или есть иные причины? Я про _union, _SDL_Event и прочие.
Лисперы, хальп!Есть сабж https://ideone.com/rlWaN8Пытаюсь перепилить его на CL - и эта гнида чего то козлит.http://pastebin.com/6xGZSze4Пытаюсь сделать (step 50 50 200) - и говно какое то.
>>6849791) Ты переборщил со скобками:>(step (x) (+ y 1) (- k 1))2) В пакете cl уже есть макрос с именем step (который, кстати, при компиляции функции у тебя четырежды раскрывается). Или переименуй функцию, или создай свой пакет, или разблокируй пакет cl и замени step на свою функцию.http://www.lispworks.com/documentation/HyperSpec/Body/m_step.htm>Пытаюсь сделать (step 50 50 200)А не охуеет ли оно у тебя без мемоизации?Можешь воспользоваться одной из библиотекhttp://quickdocs.org/memoize/apihttp://quickdocs.org/function-cache/http://quickdocs.org/fare-memoization/apiили запили сам, там ничего трудного.
>>685016>В пакете cl уже есть макрос с именем stepУ меня оно говорит, что переопределило его. Ну ок, переименую.>А не охуеет ли оно у тебя без мемоизации?Странно. А вики сказала, что в лишпе мемоизация по дефолту есть, собсно почему я к нему и обратился. Ололо, пиздит?
>>684941Понятия не имею. В cl-sdl2 все норм с именами.
>>685017Где ты такое вычитал?
>>685023Что именно?
>>685024>что в лишпе мемоизация по дефолту естьЭто. Она легко реализуется, но по дефолту её нет.
>>685026Окай. Как ее "легко реализовать"? Есть уже где готовый кусок кода можно найти?
>>685029Наивная реализация выглядит примерно так.http://ideone.com/280xHaДумаю, суть понятна.
Какая фича в лиспе привлекает вас больше всего? Почему именно лисп?
>>685673На нем пишет Лейн.
>>685673SLIME
>>685684Ну не только в лиспе есть репл. Чем конкретно слайм так хорош?
>>685674Спешите видеть: костыли и велосипеды: https://github.com/TatriX/lispstone
>>685700Поддержкой т.н. интерактивного метода разработки.То видео >>649348 по-моему неплохо его демонстрирует.
>>685707Ну а что, так больше нигде нельзя?
Раз уж у вас Clojure уже есть, то добавьте в шапку еще и это питоноговно: http://docs.hylang.org/en/latest/
>>685722Запили лучше сам.https://titanpad.com/x87hR0KJ2w
>>685720Даже на сишке можно. Только для этого нужно придется написать свою реализацию лиспа.
>>685722Пиздец какой-то. Но за анафорические макросы из коробки лойс.
>>685720Найдешь - приноси. Посмотрим.
>>685749Оно только для макросов и нужно. Это просто питон без синтаксиса и с макросами.
>>685735REPL в няшке:https://www.youtube.com/watch?v=W_b4zMxfLvA
>>685762Кажется, у него там кресты, а не няшная.
>>685769http://www.templeos.org/Wb/Doc/HolyC.html
>>685755Ну возьми тот же хачкель. Репл есть? Есть.
>>685959Ну так-то и в гаидоне репл есть.
>>685959И как ты в этом огрызке код наживую писать предлагаешь?
>>685967Расскажи для начала, что ты подразумеваешь под "писать код наживую".
>>685969Ну ты бы хоть ознакомился с предметом, прежде чем в тред лезть со своими умозаключениями.
>>685992Я понимаю, что ты особенный, и считаешь что все разговаривают и думают так же как и ты, но будь добр, сделай исключение для нас, смердов, расскажи как конкретно ты, повелитель вселенной, пишешь код "наживую".
>>685969В видео тебе же вчера указали. Разве по нему не очевидно?
>>686004На видео т.е.
>>685959>Ну возьми тот же calc.exe. Умножение/сложение есть? Есть.
>>686004Ну да, SuperCollider именно для такого и предназначен.Все эти волшебные видео с обновлением канваса на лету (js + skewer/swank-js = то же самое).Не надо мне рассказывать про постановочные видео, расскажите мне про ваш реальный воркфлоу.
>>686019Если код содержит основной цикл (отрисовка, обработка запросов, событий и т.п.), то разработка выглядит точно так же, как на "постановочных" видео: написал каркас, запустил и начинаешь постепенно реализовывать, наблюдая за результатом. А в случае ошибки исправляешь её, дергаешь один из доступных перезапусков и продолжаешь дальше.В остальных случаях процесс отличается тем, что о сохранении промежуточного состояния приходится заботиться самому, и тем, что код сначала пишется выражениями, а затем реструктурируется в функции/методы.Может, немного сумбурно описал, но, думаю, суть понятна.
>>686975Ты сам то пробовал? Пока я пилил игрушку на конкурс мне пришлось перезапустить sbcl чуть более 9000 раз, потому что сишные либы, на которых все держится не очень то под это приспособлены.Хотя если взять тот-же clack, то вполне можно эвалить обработчики на лету, да. Но чем это отличается от любой скриптопараши, ведь там то же самое: файл сохранил, страничку в браузере обновил, вуаля.
>>687272>Ты сам то пробовал? Конечно. Именно так и делал, когда писал на сдл с опенгл.>Пока я пилил игрушку на конкурс мне пришлось перезапустить sbcl чуть более 9000 раз, потому что сишные либы, на которых все держится не очень то под это приспособлены.На сдл2? Там, скорее всего, не сишные библиотеки виноваты, а сырая лисповая обертка.>Но чем это отличается от любой скриптопараши, ведь там то же самое: файл сохранил, страничку в браузере обновил, вуаля.Сохранением состояния, например. И запрос из-за ошибки в обработчике зачастую можно не повторять, достаточно вызвать перезапуск.
Нейронные сети на лиспе, есть?
>>687434Нет, я нашел библиотеки, но вопрос в том, насколько они говно?
>>687391Что писал? Оперсурс?
>>687449Реализовал поддержку какого-то формата моделей, пощупал шейдеры, склепал сценку и забросил. Код не выкладывал, т.к. он не причесанный.
>>687434Первая ссылка в гуглеквикдоксе http://quickdocs.org/mgl/
>>687470вроде норм, но документации практически нет
>>687476Разве? http://melisgl.github.io/mgl-pax-world/mgl-manual.html
>>687481крутяк
Поясните за систему модулей в петухосхеме.Wiki предлагает мне нестандартный (declare ...):http://wiki.call-cc.org/man/4/Using%20the%20compiler#an-example-with-multiple-filesЭто работает, но нестандартно и экспортируется вообще все, а хочется именно модули. Насколько я понял, это просто использование тулчейна няшки для линковки бинарей. Все прелести сишки присутствуют, вплоть до невозможности экспорта макросов.Вот тут пример использования системы модулей: http://wiki.call-cc.org/man/4/Modules#examples-of-using-modulesНихуя непонятно, как сделать цельную программу без ебли с ,l и динамических библиотек.Еще R7RS подъехал со своими library. На R6RS положили хуй, так что туда даже не смотрю. http://wiki.call-cc.org/r7rs-tasks#library-syntaxЧто из всего этого зоопарка нужно юзать? Хочу вкатиться в Scheme, а не поддерживать legacy CL, но что-то не получается.
>>688390Если ты в chicken - то юзай их системуВ ракете юзай ракетовскую
Решил перепилить протухший туториал для пс на фукамачи технологиях.https://github.com/TatriX/Parenscript/blob/tutorial/examples/hello.lisp
http://panicz.github.io/pamphlet/
>>657284Не забудь про эликсиру с фениксом, няша.http://elixir-lang.org -- очень на лисп похож с синтаксисам десу.Вот видосики принёс с последнего сходаhttps://www.youtube.com/watch?v=XJ9ckqCMiKkhttps://www.youtube.com/watch?v=eSWNi5vRxU8https://www.youtube.com/watch?v=fklep3sUSWo
>>688390http://www.phyast.pitt.edu/~micheles/scheme/scheme5.html#there-is-no-portable-module-system
На всякий случай напоминаю: я стримлю CL.Сегодня очередной стрим. Ориентировочно в 22:00Будем доделывать небольшой веб-сервис на caveman2https://www.twitch.tv/tatricshttp://goodgame.ru/channel/TatriX/
>>687470Блядский БЛАСЛАПАК не хочет ставиться на винду
>>692654А зачем ты сидишь под виндой?
Антош, чего ему надо от меня?
>>694130Оказалось, что ничего.
>>694130ШГ
>>694130Раз уж речь про Guile, есть тут аноны, прогающие под него? Покажите пример workflow. Как настраиваете load path? Добавить в него "." из .guile или завести себе директорию с модулями, куда складывать весь более-менее реюзаемый код?
Какая же боль это программирование!
>>694861Значит, ты делаешь что-то не так.
>>694993Я таки поставил БЛАС ЛАПАК вчера в три ночи
>>695141Виндопроблемы?
>>695174lf
Код со стрима, если кому интересно.https://github.com/TatriX/blue-water
Лиспоны, читаю потихоньку Joy of Clojure, и подумал, а почему бы не сделать из этого сравнение с общелиспом.Заодно узнаю всякого о самом общелиспе.https://github.com/TatriX/cl-vs-clojure/blob/master/comparison.orgПредлагайте улучшения для CL кода
>>699084Ну и как тебе самому-то?
>>699553Кложура-то? Ну если бы там жава со всех щелей не выглядывала БЛЯДЬ КАК ЖЕ ЭТА ПАДЛА ТОРМОЗИТ было бы неплохо. Пока общелисп больше нравится.
>>699571>ТОРМОЗИТ Тормозит-то наверно при старте только, а не вообще.
>>699779При старте она не просто тормозит, а делает как твикс "И пусть весь мир подождет". А в остальное время она рандомно подвисает мерзенько при выполнении команд из репла.
>>699818> рандомно подвисает мерзенько при выполнении команд из реплаEnjoy your garbage collection.Да, я знаю что в любом лиспе есть GC, но в Java оно запускается как будто по таймеру, просто вешает GUI и начинает чистить мусор несколько секунд.
>>700158Алсо, может быть действительно параметры GC покрутить у JVM попробовать?
>>700158>Enjoy your garbage collection.Какой из?Хочешь минимальные паузы - используй CMS или G1.
Нубас итт, как сделать разделитель не по горизонтали, а по вертикали?И чтоб строки по числам.Слева моё, справа пример.
>>700837C-x 3M-x linum-mode
>>700837;; split window horizontally by default;; (setq split-height-threshold nil);; (setq split-width-threshold 0)Читай докуС-h v split-height-threshold
Пацны я просто пиздец заебался, у меня не запускается автоматически slimeВ .spacemaks в (defun dotspacemacs/user-config ()добавляю(add-to-list 'load-path "C:/Users//AppData/Roaming/.emacs.d/elpa/slime-20160325.1536")(require 'slime)И происходит целое нихуя.Наставьте.
>>701401(setq inferior-lisp-program "/usr/sbin/sbcl")(add-to-list 'slime-contribs 'slime-fancy 'slime-editing-commands)(slime-setup '(slime-company))(setq slime-company-completion 'fuzzy)(make-directory "/tmp/slime-fasls/" t)(setq slime-compile-file-options '(:fasl-directory "/tmp/slime-fasls/"))
>>701673Он, видимо, хочет запуск slime автоматически при запуске spacemacs, а приходится жать M-x slime.
>>701674А что мешает просто дернуть (slime) в конфиге?С другой стороны, зачем так делать, это же замедляет запуск, а слайм нужен не всегда.
Пацаны нажимаюC-x C-fНе могу загрузить файл не с диска С, че делать?
>>701891Открой буффер messages и покажи что там.
>>701911
>>701921Всё понял, нихуя я тупанул.
clojurescript vs purescriptДискасс.
>>702913purescript вроды бы довольно маргинальная штука.Обычно Elm c ClojureScript сравнивают.Мой выбор - ебал в рот статическую типизацию, поэтому ClojureScript офк
>>703275Почему тебе не нравится статическая типизация? Она же избавляет от кучи проблем.
>>703452Статическая типизация это будущее же. Из статической типизации можно сделать динамическую, завернув все в box-ы, а из динамической статическую уже хуй сделаешь.
>>703452И создаёт другую кучу проблем. Плюс на статически типизированном языке быстро не поразрабатываешь. Нахуй надо.Минимализм, простота, гибкость, скорость разработки - вот что нужно, а не ёбаная тайп сейфити для аутистов, во всяком случае в вебе.
>>703755Ой вот не надо. В любом случае ты подразумеваешь что твой код использует определенные типы данных. И если пишешь ты не на крестах, а на каком-нибудь go, код пишется вполне себе быстро.Да, прототип наклепать на коленке, гораздо удобнее на динамической параше. Но если у тебя большой проект который надо поддерживать, то статическая типизация спасет от кучи проблем при развитии кодовой базы.
>>703801Го уже научился в нормальное обобщенное программирование?
>>703755Все тесты написал уже?
>>704043Нет, и вряд ли научится. Его ценность в другом.>>704072Вот кстати чем меня бесят тесты, так это тем что ты тупо удваиваешь количество кода, в котором ты можешь налажать. Хорошо работают только тесты уровня КО: а давайте сложим два и два, и проверим что на выходе должно быть четыре.
>>704087> Вот кстати чем меня бесят тесты, так это тем что ты тупо удваиваешь количество кода, в котором ты можешь налажать.Тебе надо при этом одинаково налажать. Тесты для сложных алгоритмов работают очень хорошо. Сначала кодишь брутфорс, потом тесты, а потом оптимизируешь реализацию.
>>703755> И создаёт другую кучу проблем.Назови несколько.> Плюс на статически типизированном языке быстро не поразрабатываешь.С выводом типов поразрабатываешь как нехуй делать. Посмотри на тот же Haskell, типы явно определять практически не нужно. Неявное приведение типов может и помогает, но динамическая система типов нахуй не нужна. Динамическая система типов это тип Box A, где вместо A любая хуйня вроде Integer, [Char] и т.д. Нахуя в рантайме проверять тип A, когда можно всегда накомпилить для нового типа код без проверок внутри него?
>>704087С типизированными языками то же самое. Сидишь доказываешь тайпчекеру что ты не верблюд, тесты хоть отдельно могут идти.
>>704087Так в динамическом языке тесты и есть уровня КО, лишь бы не упало от опечатки или кривого мерджа.
>>704474Пример в студию.
>>704482>Посмотри на тот же Haskell, типы явно определять практически не нужно.Ну это ты лукавишь. Может, в каком-нибудь окамле и не принято указывать сигнатуры, но уж точно не в хаскеле.>Нахуя в рантайме проверять тип A, когда можно всегда накомпилить для нового типа код без проверок внутри него?При safety=0 sbcl так и делает.А вообще, в рантайме много чего делать не следовало бы, но, увы, абстракций с нулевой стоимостью пока завести никуда не смогли.
http://www.red-lang.org/2016/03/060-red-gui-system.html
>>703755>на статически типизированном языке быстро не поразрабатываешьКак будто ты на динамическом быстро поразрабатываешь. Написал -> ой, не работает -> исправил -> ой, опечатка -> исправил -> ой, что-то не сходится -> через четыре часа отладки нашёл, что где-то в ебенях сложил апельсины с километрами.
>>704714То, что ты описал, обычно встречается в языках со слабой типизацией. И необязательно с динамической: в той же сишке, например, сложение апельсинов с километрами приведёт к трудноуловимой ошибке.
>>704867Ты мне вот что расскажи. Как рефакторить код без типизации? В статической ты просто, например удаляешь функции/поле в структуре и все, компилятор тебе сам скажет где что надо поправить. И поэтому элементарно делаются инструменты, которые делают подобные изменения автоматически.
>>704714Кстати вот этого товарища двачую, тупые ошибки должен проверять компилятор, а не ты сам в рантайме.
>>704714>ой, опечатка это ещё синтакс чекер проверяет, прямо в редакторе/ide
>>704922ага, ценою того, чтобы тратить время на доказательство машине очевидных вещей, и нагромождения костылей фабрик фабричных стратегий
>>704926Редактор проверяет только простейшие вещи, и то частенько на них обсираясь.>>704933Ты проецируешь свой неудачный опыт общения с какой-нибудь жавой на весь статически типизированный мир.
типы - не нужны,я, например, и так помню что мои функции принимают в возвращают
>>704939увы, но тот же Haskell - язык для медленного вдумчивого top-down проектирования и по другому на нём нельзяда, по сравнению с жабой у него куда более развитая система типов, но тем не менее они в одной категории медленной тырпрайз разработки (хаскеля там нет, но он отлично зашел бы), а реальный мир, тем более в вебе, часто требует именно хуяк-хуяк-впродакшен языков, а на статике так не получится
>>704919Рефакторинг, если ты не помнишь, миру подарил динамически типизированный смолтолк. И зародилась эта техника там в основном благодаря легкости (в сравнении со статически типизированными) внесения изменений.
>>704940Уходи.>>704944Посмотри на го. Там быстрый хуяк-хуяк в и продакшн.>>704956Не помню. Линкани почитать или, лучше, расскажи сам.
>>704919Ну и покажи мне хоть один инструмент для автоматического рефакторинга хаскеля, который делается элементарно.И почему ты думаешь, что создание анализатора для языка проще опроса рантайма?
>>704964Потому что хаскель эзотерическое говно с уебанским синтаксисом, не?В том же го прямо в стандартой библиотеке есть пакет ast при помощи которого довольно легко делается вот такое: https://godoc.org/golang.org/x/tools/cmd/gorename
>>704958Ну можешь Кента Бека почитать. Он где-то писал, что из техник разработки смолтолкеров экстремальное программирование и выросло.
>>704975Что именно?
>>704973После увиденных костылей для кодогенерации в го я отношусь с некоторым недовкрием к его "простым" (на грани примитивности) инструментам.
>>704976Если б я помнил.
>>704979Ну да, кодогенерация уебанская. Но в остальном тулзы довольно неплохие.
>>704981Хуево читаешь, если не помнишь.
>>704983Я не слишком буквоедствую: проглядел, выудил основное да отбросил.
>>704973Какой-то этот го слишком хуяк-хуяк. Почему флаги getopt находятся в gorename, а usage-строка в модуле rename?Ну и код нечитабельный пиздец. Слишком уж он многословный.
>>705009А что по твоему читабельно? Хаскель?
Я вам тут покушать принес: https://gist.github.com/chaitanyagupta/9324402Общелисп можно научить понимать json. Кложура, твой ход.
>>705038Без перемудренных абстракций - да, обычно такой код намного чище.
>>705062Общелисп и не такому научить можно https://github.com/y2q-actionman/with-c-syntax
Аноны, какой самый живой лишп пригодный для вебразработки?
>>705105clojure
>>705105Common Lisp
>>705105racket
>>705105picoLisp
>>705105Wolfram language
>>705105Red
>>705105NewLisp
>>705105Arc
>>705105LFE
>>705105Elisp
>>705105tcl
Перекат>>705167 (OP)>>705167 (OP)>>705167 (OP)>>705167 (OP)>>705167 (OP)>>705167 (OP)
>>705105Общелисп пробуй. Ну или кложуру, если явой не брезгуешь