Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость. Основные диалекты— 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 - это минималистичный лисп, пригодный в основном для обучения, исследований. Наиболее практичными реализациями являются GNU Guile ( https://www.gnu.org/software/guile/ ) и Chicken Scheme ( http://call-cc.org/ ).— Racket - Развитие PLT Scheme. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket, Scheme стандартов r5rs и r6rs).— Clojure - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.— Emacs Lisp - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.— Lisp Flavored Erlang (LFE) - Реализация Lisp поверх виртуальной машины Erlang (BEAM), в итоге мы имеем всё лучшее из обоих миров: привычный синтаксис s-выражений, макросы, функциональщина, иммутабельность, многопоточность из коробки + набор либ для построения отказоустойчивых распределённых приложений OTP. http://lfe.io/— 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 Как изучить?— Emacs Lisp + An Introduction to Programming in Emacs Lisp https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html — скучный туториал, предполагающий что читатель вообще не умеет программировать + Emacs Lisp Reference Manual https://www.gnu.org/software/emacs/manual/html_node/elisp/index.html— Common Lisp + Practical Common Lisp http://www.gigamonkeys.com/book/ или русский перевод — http://lisper.ru/pcl/ + On Lisp http://www.paulgraham.com/onlisp.html + Land of Lisp + 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 + The Little Schemer, The Seasoned Schemer, The Reasoned Schemer + SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет) + http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html + Попрактиковаться можно на Exercism'е http://exercism.io/languages/scheme — Racket+ The Realm of Racket+ How to Design Programs http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html+ https://docs.racket-lang.org/— Clojure + Programming Clojure, 2nd edition (для новичков) + Clojure for Brave and True http://www.braveclojure.com/foreword/ — В отличие от предыдущего сухого изложения, более приятный для восприятия материал, да и бесплатный, если читать онлайн. + 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/Racket + Emacs + Geiser (поддерживает GNU Guile и Chicken Scheme) + 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Шапка: https://titanpad.com/x87hR0KJ2w
Освятил http://www.youtube.com/watch?v=o4-YnLpLgtk
Анон, где можно почитать про внутренности Общелиспа? Стек-куча-аллокация и т.д.
>>875327Оно не стандартизировано, так что у каждой реализации свои особенности.Можешь почитать это http://ccl.clozure.com/docs/ccl.html#implementation-details-of-clozure-clили это http://www.sbcl.org/sbcl-internals/index.html , попутно ковыряя исходники SBCL, в которых, как говорят, достаточно несложно разобратьсяили это https://github.com/froggey/Mezzano https://github.com/froggey/Mezzano/blob/master/doc/internals/abi
>>875348Спасибо, анон!
Что лучше: коммон лисп или схема?
>>875839Смотря для чего. С моей точки зрения, общелисп практичнее хотя бы потому, что нет разрозненности между реализациями, отчего и библиотек больше, и качества они лучше.
Если под "перекатом лиспотреда" имелось что-то помимо обновления информации в каталоге языкотредов, опиши, пожалуйста, в жалобе более конкретно, чего ты хочешь, буду рад помочь.
Кто-нибудь делал проекты на скобках сложнее laba1 и какие? Просто интересно.
>>876043На кложуре просто пиздец сколько всего.
>>876043в продакшене у меня есть пару проектов на кложе
>>876366>>876452И какие?
>>876528Сама кложура частично и еще порты всякие
>>876528Все проекты - фронтендные, то есть clojurescript. На бэкенде используются golang (первый проект) или ruby (второй).1 - сервис для проведения опросов (буду переписывать, re-frame с тех пор нехило обновился). Просто множество (до 300) динамически подгружающихся masonry-карточек, несколько кнопок, поиск, ничего сложного.2 - интернет магазин. Сервер на ruby, клиент снова на clojure+re-frame.В самом начале клиент просто выкачивает списки продуктов (только ту информацию, которая нужна для списка продкуторв, их там до сотни) и категорий, кэширует в localstrorage (пережимает через lz-string), из-за чего вторая загрузка почти мгновенная (при втором входе данные все равно выкачиваются с сервера, но пользователь уже видит продукты из localstorage).Корзина хранится только на клиенте в localstorage (между двумя вкладками все синхронизируется).Запросы на сервер идут только приа) открытии страниц конкретных продуктов (выкачивается дополнительная информация типа отзывов и характеристик, не кэшируется)б) преобразование корзины в заказ, оформление и оплата заказовИз-за того, что все данные на клиенте, переход между страницами, поиск, добавление в корзину происходят очень быстро.В принципе, тут тоже все довольно просто, пара тысяч строк от силы, все это можно было писать и на js + redux, что я раньше и делал, но js мне в принципе не очень нравится, а в последнее время там вообще какой-то пиздец происходит (писать селекторы на reselect намного сложнее, чем сабскриберы на re-frame, но при этом сабскриберы намного мощнее из-за того, что они реализовывают полноценное frp, это к примеру), поэтому я свалил с него
>>876032Не, ничего более не имелось в виду, просто проследовал просьбе из шапки прикрепленного треда.Хотя, конечно, можно было бы запилить оформление шапки как в крестотреде, но позже, т.к. пока времени на переоформление не имею.
>>876619Мы тут проект в прод начали делать на кложурскрипте. Взяли реагент, гарден, секретаря и еще какой-то залупы. Стоит ли брать ре-фрейм или проще накостылять? Надо чтобы обязательно был сервер-сайд рендер. Сейчас это сделано через эксресс+кложурскрипт на "сервере", чтобы компоненты были общими.
Нейронные сети на лиспе нормально делать?
>>876958Какая разница на чем их делать?
>>876958абсолютно ненормальнолисп - язык для настоящего искусственного разума, а не для дэбильных нейроноперделок
>>876928Могу посоветовать отказаться от garden, довольно тяжелая штука (тормозит), тяжело править стили, т.д.Ре-фрейм однозначно стоило бы брать, если бы ты не сказал про сервер-сайд. Нет, ре-фрейм можно срендерить на сервере, но довольно костыльно.А так вроде как Ом легко рендерится на сервере, а функционала много.
>>876958http://quickdocs.org/mgl/http://melisgl.github.io/mgl-pax-world/mgl-manual.html
>>876619>>876928Так бэк никто на Кложуре не делает в итоге? Только фронто-перделки на нём, никакого серьёзного щита?
Как обмазаться коммон лиспом? Киньте материалов на русском, пожалуйста.
>>877061Ом мне не нравится. Когда гарден должен начать тормозить? Сейчас я сделал так:1) lein garden once конпелит стили и кладет их в статик файл (для прода)2) В реагенте я делаю (garden/css style-map)В результате фигвил это дело вместе с разметкой накатывает и результат приходит через 0.1 секунду в браузер. Зависимость есть, брат жив. Правда стилей пока не много: ~150 строк структура.Второй вопрос: hoplon щупал?
>>877179http://lisper.ru/pcl/Можешь изучить CL чтобы было с чем сравнивать, но увы реальный софт на нем писать боль. Уж я то знаю.
>>877097http://www.parens-of-the-dead.com/Вот тут магнарс на кложуре делает сервер сайд.ПРосто сейчас такое время, когда нужно чтобы код на сервере и клиенте был общим. Поэтому кложурскрипт и тянут на сервер (с нодой)
Совсем нубский вопрос, в документации чет не найду. Как поставить в lispworks нормальные в таб 4 пробела? Версия 6.1.1
>>877186Спасибо. Через кеш гугла смотреть?
>>877186Кстати, таки интересно было бы узнать твой опыт и твою историю. Почему боль?
>>877190хм, уже работает
>>877193Началось все с книжки "Coders at work". Прочитав её, я решил посмотреть что еще написал этот автор. И оказалось, что он же написал "Practical Common Lisp". А т.к. я имаксер, я подумал, а почему бы и нет и решил упоротся. Прочитал книжку, поковырял упражнения http://exercism.io/languages/lisp/aboutИ тут как раз подкрался конкурс TWG в /gd/. Для него я сделал игрушку на cl-sdl2: https://github.com/TatriX/lispstone, https://www.youtube.com/watch?v=xaR_Hqo68TUИ это была адская боль. С одной стороны лайв-релоад-фап-фап. С другой стороны оно постоянно глючило и хуево работало. Ну ок, я криворукий, библиоте кривая. Затем по условию конкурса мне нужно было собрать билд под винду. SDL же! Три дня проебавшись, конпеляя руками библиотеки, конпеляторы и паралельно отсылая патчи в саму cl-sdl2 я так нихуя и не сделал. Добрый анон из лиспотреда помог и каким-то чудом оно таки завелось. Итого: в двухнедельном конкурсе примерно 5 дней было проебано на то, чтобы просто сконпелить код под винду. Ну ладно, может быть просто не повезло с библиотекой.Зачем я сделал тестовое задание (никто не просил его делать на лиспе, правда): https://github.com/TatriX/blue-waterЭто парсер рейтингов и кинопоиска и небольшой фронтэнд для него. В целом все было норм, не считая того, что дохуя либ например для жсона. Половина кривая, другая половина пиздец неудобная. В общем с одной стороны репл-хуепл, с другой стороны постоянно какие-то проблемы из-за того что очень маленькое и подыхающее комьюнити, а поэтому качество либ так себе. Например достучаться до известного в узких кругах Фукамачи, чтобы тот принял пулл-реквест довольно сложно.Сделал один небольшой одноразовый проект (опять про парсеры) по работе.Для своей игры (http://rogalia.ru) я сделал пару инструментов: тулзы для обновления бд, парочку микросервисов для раздачи всякой статистики и прочего.По итогу, язык увы для меня остался в 90ых. Да он неплох, он шустрый, на нем в целом приятно писать, но сейчас совершенно другие требования, а CL к ним так и не приспособился.Ну и вишенка на торте: плюнув на свою ядерную нелюбовь к тормозной жвм, мы начинаем пилить серьезный фронтэнд проект (по работе) на кложурскрипте (>>876928). Да оно просто пиздец как медленно поднимается, но когда поднимется, равных по удобству инструментов я пока не видел.
>>876619>На бэкенде используются golang (первый проект)Сочувствую. Как земля на вкус после Кложуры?
(def turd 42)(defn fuck [shit] (* shit turd))(fuck 2)Является ли fuck чистой функцией?
>>877207Недостаточно информации.
>>877229Ну раз turd имутабельно, то получается что fuck зависит только от аргумента, а значит оно чистое. Правильно или нет?
>>877231Если set! забанен, то да. Если нет, то зависит.
Что брать в дополнение к реагенту для работы с сетью? Сейчас смотрю на https://github.com/JulianBirch/cljs-ajax
Здесь есть лисперы, которым нечем заняться? Может попишете ИИ под мои гениальные метафизические маняидеи?
>>877239Сначала ты кладешь на стол маняидеи, потом мы думаем.
>>877244Прямо здесь?
>>877245А ты чего-то стесняешься?
>>877250Чуток стесняюсь. Суть в когнитивных искажениях, синестезии и особому строению и самоорганизации при импульсных нейронных сетях.
>>877252Тебя что пиздят если ты скажешь больше 10 слов? Пиши нормально.
>>877255Я просто некоторое число..https://core.ac.uk/download/pdf/6117416.pdf я думаю, что связи между нейронами образуются подобно грибнице.
>>877256Ой все. Иди в хаскель тред.
>>877257Почему?
>>877259Потому что мы не настолько ебанутые.
>>877262Но там меня не примут, я довольно плохо знаю математику.
>>877184> gardenну, у меня garden висел на auto, оперативы мало, из-за этого и тормозил похоже. У меня рядом с boot (вместо lein) висит вебпак, так как нужно компилить зависимости для React, вот он у меня сейчас и занимается стилями, писать на stylus намного удобнее, чем на garden.> hoplonнет, но сейчас посмотрел, выглядит круто, нужно попробовать поиспользовать. Там полноценное FRP, можно делать global state, от него зависимости, от него еще зависимости.... и получается re-frame, только без удобного регистра субскриберов и без хэндлеров/интерцептеров, цикла событий. Но если есть сервер-сайд рендер, то можно поверх него сделать свой re-frame.
>>877206golang я знаю давно. Пометка про первый проект - это не то, что он первый мой проект, а первый проект из списка кложуровских проектов. Писать на golang мне нравится, лол. Кложа и го - два из четверых моих любимейших языков (на других двух (хачкель и erlang/elixir) я просто ничего реального не писал)
>>877097Ну на кложе много серьёзных проектов, другое дело, что мне серьёзный бэк писать особо не приходилось, простая rest api прослойка между db и клиентом + немножечко логики, это мне проще написать на golang/ruby+sinatra/express. А если нужно что-то крупнее, то я возьму рельсы. Смысла писать бэк на кложе я для себя не вижу. Разве что есть профит передавать между клиентом и сервером edn вместо json (а то на клиенте функции для преобразования "is_active" <-> :active? для каждого запроса туда и обратно).
>>877327Просто не укладывается, как может одновременно нравится кложура/хачкиль/эрланг и такой дибиловатый ребёнок с вечной ухмылкой-го
>>877337На го я пишу, когда мне нужно написать что-то очень быстро, за короткий промежуток времени, и что бы это работало. Причем это получается не говнокод, как на пыхе, а что-то нормальное (статическая типизация и простота в разбитии кода на кучу модулей) Я почти не использую горутины сам (хттп-либа сама запускает все хэндлеры в своих горутинах), я просто пишу код, как на питоне. Ничего крупного и серьёзного я писать на го не стану.Когда же я пишу на хачкеле, я пишу это уже медленнее, постоянно пытаюсь что-то отрефакторить, сделать код еще чище и проще и в итоге много времени сам охуеваю, как же круто все это на фп. (Собственно, мне сложно охуеть от какого-то императивного кода, а вот от функциональных решений я до сих пор охуеваю, как от qsort на хаскеле много лет назад).
>>877189Сомневаюсь, что кто-то здесь пользуется чем-то иным, кроме емакса. Чего и тебе советую.
>>877361Горутины кстати охуенная вещь. Вроде как core.async собственно навеян горутинами и каналами? понятно что в начале был CSP
>>877571горутины вещь крутая, я не сомневаюсь, только они не нужны в коде, где идет запрос базу, преобразование в json и отправка ответаcore.async действительно сильно напоминает горутины (хотя бы "go")
>>877626Горутины нужны если у тебя не один запрос в базу, а запрос в базу и три запроса к сторонним сервисам. Тут они с каналами становятся просто незаменимыми.
Пагни, кто-нибудь щупал овертон?
>>877634Вот кстати кто-то сверху спрашивал про CL. Просто сравните овертон с той поделкой что для CL сделана. И сразу все вопросы про дохлое комьюнити отпадут. как же блядская жвм бесит своей тормознутостью на подъеме
Блядский кложурскрипт заебал крашить емакс.
>>876619Реакт нейтив с кложурой использовал?
>>877202Ну вот, а стонов-то с говнокиданием сколько было.
>>877634Я с ним поигрался, пощупал их экземплы, погенерил дабстеп, но не придумал, что лично мне с ним дальше делать и забил.
>>877973Я в тебя готов кидаться говном целый день. Этот блядский кусок говна жрет память по 100мб/минута, из-за чего постоянно крашится. Заебало.
>>877969нет, не было причин пока. Но много видел, что люди используют, значит это как минимум не сильно проблемно
>>878021Попроси менеджера еще одну планку тебе воткнуть, чего ты.
>>878115Вася, неужели ты не понимаешь, что проблема не в количества памяти, а в том, что это херота течет как второй фурифокс? Почему я могу открыть 300 буферов с жс и го, и емакс даже 2х гигов не отожрет, а немножко жабы убивает машину?
>>878124Не знаю, у меня не убивает. И имакс с 300 буферами у меня отжирает мегабайт сто памяти максимум, кстати. Может у тебя какие-то волшебные мегабайты?
Кто-нибудь юзал http://arachne-framework.org/ ?А пьедестал?
То есть не юзал, а тыкал. Короче, кто-нибудь их сравнить может?
>>879094Куда не тыкни, Coming soon!Coming soon!Coming soon!Coming soon!
Реквестирую пример проекта реагенте на гитхабе. Не ебучий темплейт, а настоящий живой проект.
>>879527Мне на клжс приходят на ум только два больших опенсурсных проекта: прекурсор и сиркл си ай. Они оба на оме вроде как, так что хз.
Зачем нужен boot или чем плох lein?
>>879729Двачаю вопрос, кстати.Как я понял, бут используют те, у кого какие-то сложные деплойные скрипты, и они их хотят писать на кложе, а не на баше, и им нужен доступ к энвайроненту жвм во время сборки, так что нельзя взять кложурно-одный шелл. Но сам я хз, что там за деплой у них такой, что это нужно.
>>879772мне бут нужен только потому, что я заебался писать огромные ебучие конфиги для лейна
>>879876А что для бута при той же функциональности не будет такого же по размерам конфига?
Всего с пару дней отсутствовал, а кложуристы уже захватили тред?!
>>879882Незнаю как остальные, а я вынужденный кложурист. Потому что цл умер, а других живых и готовых для прода альтернатив нет. Хоть свою пиши. пополни ряды прочих мертвых лиспов
Наше время пришло! Готовьтесь остаться на помойке истории.
>>879929Лол, "опыт в коммерческих проектах от 5 лет".
>>879881нет. Мой бут-файл вообще без конфигов почти (кроме :source)
>>879935Объясни тогда, каким образом жырный конфиг лейна прверащается в пустой бут фейл?
>>879888>Потому что цл умерНу, мне так не кажется, сообщество таки живо и даже развивается, хоть и медленновато
>>879935Да, и мне объясни. Темплейты и плагины для лейна работают с бутом, кстати? Бут нью фигвил пашет?
>>879954>>879937да че там объяснять, огромные сложночитаемые (и сложноредактируемые без паринфера) конфиги профилей заменяются на простой читабельный кодhttps://gist.github.com/anonymous/c26bfe1dc7e37d20c246d6f975f993f5Конфиги таки есть, но это не такая ебанина, как на моем прошлом проекте на лейне (пикрелейтед), многое норм по дефолтуПро шаблоны не знаю, бутом пользуюсь только первый проект, писал все с нуля.
>>879970Эм... Так ты же просто выкинул гарден и фигвил, не? Если из лейна их выкинуть, то там тоже будет малобуков, лол. Или я чего-то не понял?
>>879974там используется reload, который вроде как заменяет фигвел (такие же панели с ошибками, такой же хотрелоад, только репла нет).Кроме того, если бы я вставил в бут garden, он бы все равно вышел короче из-за возможности использоватьа) дефы, функцииб) определять параметры по умолчанию. В лейне, как видишь, некоторые параметры дублировались для разных "профилей". Может, это можно было как-то сделать в лейне, но мне лень разбираться с форматом этих конфигов.в) как я уже писал выше, многие параметры в boot указаны по дефолту в удобных значениях.Я тот человек, который между кодом и конфигом выберет код, не переношу огромные json/xml/yaml конфиги, где можно настроить все на свете.
Япошки емакс на общелиспе запилили, уже вполне юзабельно, хоть и рисует пока только через ncurseshttps://github.com/cxxxr/lem
>>879953Не просто медленновато, оно просто в конвульсиях.Да и сам язык, увы, пригоден конкурировать только с сишкой до 89 года. А если начать к нему прикручивать батарейки уровня CL21, то начнется адовая фрагментация. В общем увы и ах.
>>880006Не нужно.
>>880074Если они ставят себе целью совместимость с емаксом, то очень даже нужно.
>>880087Лол, в чем смысл? Писать ядро редактора на тормозном цл вместо ультрабыстрой сишки?А емакс без тонны код на елиспе никому не нужен.
>>880099Смысл в компилируемости расширений в машинный код, очевидно.>А емакс без тонны код на елиспе никому не нужен.Поэтому я и говорю >>880087>Если они ставят себе целью совместимость с емаксомБлаго, елисп не так сильно отличается от общелиспа, и запилить слой совместимости вполне реально (я даже видел где-то в сети). Тем более, что елисп в последнее время мимикрирует под цл.
>>880106Лучше бы многопоточность помогли запилить, чем делать очередное ненужно.А на счет "не так сильно отличается", ты походу елисп последний раз видел лет 10 назад.
>>880109Думаю, им лучше знать, что им лучше делать.>А на счет "не так сильно отличается", ты походу елисп последний раз видел лет 10 назад.Последние 10 лет он только и делал, что потихоньку превращался в цл.
>>879978Ну в лейне тоже можно объявлять биндинги и расшаривать куски конфига в разные места. Но вообще я тебя понял, это скорее вопрос личного предпочтения. Мне вот наоборот приятнее работать пусть с многословным, но представленным в виде данных билд-конфигом.
>>880106Хотели же (уже лет ндцать как) чхему впилить в имакс. Вощ и ныне там. А эти ребята взяли и запилил то же, но с кл?
>>880402>Хотели же (уже лет ндцать как) чхему впилить в имакс.Впиливали же guile вроде.>А эти ребята взяли и запилил то же, но с кл? Нет, они переписали с нуля.
>>880688Впиливали, да чет не впилили как-то, не? По-крайней мере я ни одного пакета на нем не видел.
Что джава животворящая с людьми делает...По совету сектанта итт попросил у менеджера еще одну плашку. Место под плашки в ноуте кончилось.
>>881424И как? Теперь хватает? Или ещё ону просить будешь?
>>881685Говорю же, ноут. Нет там больше места под плашки. Теперь памяти хватает, но емакс все равно рандомно крашится от злоеубучего кложурсрипта. Плюс когда нрепл активен smex начинает тормозить. Какие-то буферы кложи при сохранении на 2 секунды виснут. Короче не так хуево как ванильный жс, но все равно плохо.
>>881712Бро, почини имакс. Ты мамой клянешься, что он у тебя крашится? Я буквально пару раз в жизни видел, как крашится имакс, причем один раз это был какой-то баг, который пофиксили в следующей же версии. У тебя точно весь имакс крашится? Это пиздец же.Алсо, у тебя стабильные версии всего тулинга стоят, да?
>>883166Почему как только кложура поселилась в емаксе, он начал крашится? Крашится от слова закрываться нахуй мгновенно, проебывая все на свете. Крашится и тормозить.
>>883213Я не знаю, не видел кроме тебя никого, у кого крашится имакс. Версии-то у тебя стабильные и одни и те же у всех пакетов имакса и плугинов лейна?
Делаю простенькую задачку на лиспе с использованием вижуал лиспа. Сам интерфейс получился легко, а вот запрограммировать кнопки начинаются проблемы. Сейчас не могу вывести значения набор чисел из тхт файла в эдитбокс, пишет неверный тип аргумента file nil. Вот сейчас упёрся рогом и дальше не могу, помогите разобраться как это сделать.В программировании мало чего понимаю, разбираюсь почти с нуля, но инфы по лиспу очень мало в интернетах
>>883416> вижуал лиспШто ета?
>>883416Немного разобрался, read-line теперь выводит мои числа из файла в консоли верно. Теперь как их перекинуть в edit_box, чтобы они там отображались?
>>883453Диалоговые окна в нём делаю, а уже саму начинку в лиспе пишу.
>>883457Ты код-то хотя бы покажи.
>>883503(defun vl_fs ( / fname file re ex) (setq fname (getfiled "Выбрать файл" "D:\\" "txt" 16)) (setq file (open fname "re")) (setq re (substr(read-line file)1)) (setq ex (close file)) )Перед закрытием файла, надо его содержимое вывести в edit_box. В консоли у меня отображает нужный мне ряд чисел, я просто не знаю как его вывести в нужном мне боксе.
>>883218Стабильные. Одно и тоже на двух разных машинах. Конечно проблема в емаксе, во мне и даже в аллахе, а не в кложуре.
>>883590Ну в кложуре проблема быть никак не может, лол, - кложура крашит имакс? Что-то из разряда марсианских жидомасонов, срущих в подъездах. А вот в сидере - вполне, хотя все равно странновато, что весь имакс крашится. А что разрабы сказали?
>>883721Крашится оно только когда подцеплен фигвил. Чтобы говорить с разрабами надо им что-то показать. А показывать нечего, потому что даже стек трейс не поймать без танцев с бубном.
>>883213В емакс ффи завезли что ли?Ну все теперь.
>>883780СсссуууууукаFatal error 11: Segmentation fault[1] 15524 abort (core dumped) emacsemacs 72.48s user 2.74s system 4% cpu 28:20.22 total
>>883827> ulimit -c unlimited> Fatal error 7: Bus error[1] 29185 segmentation fault (core dumped) emacsОхуенно просто. Охуитетельно.
Не хочет работать циклwhile (/= elem nil)Если nil заменить на какое-нибудь существующее, то цикл правильно работает и останавливается на указанном элементе. Походу цикл повторяется второй раз и в конце всегда выдаёт ошибку "неверный тип аргумента: stringp nil". Пробовал заменять на null и на length 0, один хер та же самая ошибка.
>>883547Ну, за этим в документацию, мне, как и, наверное, всем остальным ИТТ, на автолиспе писать не приходилось, поэтому таких мелочей не знаю. Должен быть какой-то метод у edit_box вроде setvalue.
>>883902Попробуй просто while elem
>>883903Спасибо, уже разобрался. Я пишу наверное чуточку быстрее полторы строки в день чем тут читают. Вот сейчас с циклом затык, даже нашёл пример аналогичный, но у меня всё равно не хочет работать.
>>883906Структура нарушается. Вот смотри, если я напишу (while (/= elem 1))То у меня будет считывать строку за строкой из файла, пока не наткнётся на 1, тогда цикл завершится. В моём случае мне нужно считывать строки до конца файла, т.е. пока элемент не будет равен пустом месту. В теории всё хорошо, я даже нашёл пример http://aco.ifmo.ru/~nadinet/html/lectures/lsp_2.html#_size где делают абсолютно также. Но тем не менее где то ошибка в цикле, и он запускается второй раз после прогона всего файла и выбивает ошибку.
>>883911Ты таки попробуй, потому что в общелиспе /= предназначен только для сравнения чисел.>/= elem 1Строка сравнивается с числом? Хм, автолисп слаботипизированный что ли?
>>883912Уже и в этом разобрался, подстрокой считывал дальше после окончания и цикл накрывался. Короче проблема внутри самого цикла была, а не в самом while.
>>883931И (/= elem nil) работает? Странно, потому что в документации пишут, что он только для численных сравнений.
>>883933В моём учебнике допускается>Проверяет неравенство аргументов (рекомендуется использовать для чисел или строк).>(/= <аргумент1> [<аргумент2> ... [<apryMeHTN>]...]) >Типы аргументов: любые.
>>883933> numstrЧто, и вправду слаботипизированный? Жесть.
>>883780>>883827Ну что, нашел, в чем проблема? Если у тебя действительно последние стабильные версии имакса и всего сидер-релейтеда, то пиши им и без стектрейса. На чем крашится-то, на каком-то конкретном вводе в репл? Или вообще рандомно? На пустом проекте или только на рабочем? На обоих машинах енвайронмент один и тот же? Любопытно же :3
>>884095Вообще рандомно, перед этим начиная заметно визуально подтормаживать на сохранении/эвале кложурскриптовых файлов. Только на рабочем коннекте через фигвил. Энвайронмент ясен хуй не может быть 100% одинаковым, но дистр одинаковый, значит версии софта плюс минус одни и те же.А хуле толку писать о сегфолте вообще без данных для выяснения причин. Без стека нет смысла.
>>884103Под gdb емакс запусти
>>884210Нет ты.
>>884212Нет ты. У меня-то не падает.
>>884103А что за дистр, арч небось, лол?Да не, напиши все равно, чтобы был репорт. А то я вот сейчас посмотрел их иссуи, вроде ничего похожего нет, и если у кого-то еще что-то похожее, то он тоже ничего не найдет и подумает, что ну его нахуй, и в итоге никто так и не пофиксит проблему, если она все-таки есть.Алсо, я бы попробовал на другой версии имакса воспроизвести, если не лень. Ну и без загрузки конфига. И на пустом проекте.
>>884516Арч. Поймаю трейс, сделаю репорт.
Пытаюсь тут подсадить человека на кложурскрипт. Но бля, поставить его на винде это какое-то мучение. Есть годные мануалы, которые можно дать человеку, который не умеет конпелить исходники линукса?
>>885087Винда - это вообще сплошное мучение как бы. Вроде же расписано все на сайте у них. Загугли "lein windows", профит. Из редакторов попробуй курсив или лайттейбл, например. Хотя раз только кложурскрипт, то пусть хоть в нотепад.ехе пишет, фигвил же.
Поясните кто за emacs на windows. Установил geiser с помощью melpa, как я понял достаточно вызвать install-package и все установится, лишних действий типо качать что-то еще делать не надо. Вызываю run-guile, пишет apply: Searching for program: No such file or directory, guile.exe. Guile Load Path пустой в настройках. Что я делаю не так?
>>885290Имакс не интепретатор схемы. Тебе нужно установить guile на саму винду.
>>885293Почему тогда написано в мануале что достаточно пакет установить?>The easy and quick wayhttp://www.nongnu.org/geiser/geiser_2.html#Installation
>>885295Простой способ установить пакет в сам емакс. Без git clone и ручной установки.
>>885295Потому что для того, чтобы был гейзер, достаточно установить гейзер. Гейзер - это не гуайл. Гейзер - плугин для редактора, а гуайл - конпелятор\интерпретатор схемы.
https://github.com/arohner/spectrum - охуеть!
>>886408И правда охуеть! В кложуру завезли то, что в общелиспе из коробки уж лет с двадцать
>>88650220 лет как ненужно.
>>886502В лиспе такой хуйни быть не может.
>>886529Запрещаешь?
>>886541Здравый смысл запрещает, а я констатирую.
>>886544В любом случае, уже поздно выпиливать.А смысл свой доктору покажи, уж что-то я сомневаюсь в его здравости.
>>886553Чего поздно выпиливать? Ну-ка ну-ка поржем.
>>886563Наверное то, о чем мы говорили, нет? Ты лучше вернись в свою палату, поржи, а потом, как будешь в более вменяемом состоянии, возвращайся.
>>886567У меня сложилось впечатление будто ты утверждаешь, что такая бессмысленная хуйня как "отлов чего-то там в компайл-тайме" не только не является бессмысленной хуйней, но ещё и существует в самом лиспе. Я ведь не ошибаюсь?
>>886572>Я ведь не ошибаюсь?Частично. 1) не бессмысленная 2) отчетливый "компайлтайм" есть не во всех лиспах.Ну а вообще удивительно, что кто-то в лиспотреде об этом не знает. Может, ты ещё и про вывод типов в общелиспе не слышал?
>>886585Рассказывай где ты в лиспе видел аналог этой кложурской бессмысленной хуйни. Про вывод типов потом уж как-нибудь.
>>886588Ну на
>>886599И что это у нас? Ты не стесняйся, рассказывай.
>>886602Похоже на проверку корректности кода во время компиляции, разве нет?
>>886599http://clojure.org/about/spec
>>886604Вообще не похоже. Похоже, что ты ни шиша не понимаешь.И вообще, судя по таким словам как "проверка корректности", ты гнойный статикодебил.
>>886607Твоё отношение к тем кто не разделяет твои вгзляды показательно. Даже незнаю кто хуже, ты или гитлер.
>>886609Какие еще мои взгляды, ты о чем?Или ты думаешь, что тут кто-то кроме тебя не знает, что "Compilation failed" пишется, когда при компиляции были варнинги, кроме стайл-варнингов? Что код этот прекрасно скомпилировался и прекрасно работает точно так как написан? Что он "корректен" в любом смысле этого бессмысленного слова? Давай показывай нормальный аналог той хуйни. (Подсказка: его нет и не может быть)
>>886606Типы в общелиспе так тоже умеют. Но только они полноценная часть языка, а не сбоку прикрученный костыль.
>>886612Это все прекрасно. Сам общелисп только мертв и неюзабелен уже. Увы.
>>886610>и прекрасно работает точно так как написанВообще-то нет. Дизассемблируй функцию и увидишь, что ничего, кроме кода выброса ошибки, там нет.>Давай показывай нормальный аналог той хуйни.Ну покопай гитхаб, там полно неработающего говна.Проверка типов - вполне себе "нормальный аналог", единственное, что в компилятор вшито и апи не предоставляет
>>886620> Вообще-то нет. Вообще-то да. Но если хочеть еще позора, можешь обосновать свое замечательное мнение, не такое как у других.> Дизассемблируй функцию и увидишь, что ничего, кроме кода выброса ошибки, там нет.Что ты несешь? Там check-type должен быть еще.> Проверка типовГде, какая "проверка типов"? Рассказывай, показывай.> единственное, что в компилятор вшито и апи не предоставляетНу еще бы, какое может быть апи у того чего нет и быть не может.
>>886622>Там check-type должен быть еще.Я имел в виду, что форма, не прошедшая проверку типов, заменена кодом выброса ошибки.> какая "проверка типов"?Которая не дает складывать попугаев с питонами, очевидно.
>>886633> Я имел в виду, что форма, не прошедшая проверку типов, заменена кодом выброса ошибки.Во-первых, никакой "проверки типов" там нет. А во-вторых, это самое банальное удаление мертвого кода. Функция "умножить", если какие-нибудь из аргументов не являются числами, сигналит ошибку. В данном случае заведомо известно, что второй аргумент не число, поэтому этот вызов и заменили на сигнал ошибки. Это общая оптимизация, никакого отношения к типам она не имеет. > Которая не дает складывать попугаев с питонами, очевидно.Чего блядь?
>>886637Здесь по-твоему тоже типы не проверяются?
>>886647По-моему нет. Но я пока еще не знаю что ты подразумеваешь под "типов проверянием".
>>886649Ну как знаешь.
>>886652Ну вот и хорошо.
>>886502По-моему ты что-то путаешь. Что именно из кл ты имел в виду?
Алсо, ерлангертипохейтер, ето ти тут насрал в итт треде?
>>886699Нет, это я насрал.
>>877202Не хочешь пообсуждать 3,4,5,...,11D-рендеринг и его практическую реализацию на CL? У меня есть интересная, как мне кажется, идея, но одному мотивации нехватает.
>>887103https://github.com/TatriX/cl-gl-tutorialsНет, спасибо. Я лучше на растекрестах буду этим заниматься, чем на CL.
>>887123А чего не CEPL? Мне уже начинает казаться, что ты специально выбираешь неотлаженные и вообще недописанные библиотеки, лишь бы оклеветать общелисп и перетянуть потенциальных лисперов на кложу
>>887103Поведай, в чем суть идеи
>>887134CEPL не завелся. Да и мне нужен был ванильный биндинг.
>>887142Ну допустим. Но зачем ты пердолил указатели напрямую через cffi, ковыряя внутренности cl-opengl?https://github.com/TatriX/cl-gl-tutorials/blob/master/06/translation.lisp#L188
>>887150Если ты читал ридми, то там написано, что это адаптация кода из книжки. Нужно было, вот и пердолил.Вообще конечно, боль и страдание. Не рекомендую.
>>887155>Вообще конечно, боль и страдание. Не рекомендую.Но ты сам же себе эти страдания и обеспечил. Есть же в том же cl-opengl нормальные обертки, нет, буду голые биндинги дёргать.
>>887173Это говорит лишь о том, что обертка хуевая, но благодоря тому, что CL позволяет положить хуй на инкапсуляцию, я смог дернуть приватные методы и сделать что мне нужно было.
>>887174Пакет %gl предоставляет низкоуровневые биндиги, на что какбэ имя пакета и намекает, зачем ты в него полез - для меня вопрос.>Это говорит лишь о том, что обертка хуеваяЭто говорит лишь о том, что ты ССЗБ, который не читает документацию и лезет без повода в низкоуровневые интерфейсы. И инкапсуляция тут совершенно не при чем. Даже удивительно, что ты не догадался до прямого cffi:foreign-funcall.
>>887182Лол. Документация. Не смеши мои тапочки. Почти у всего чем я пытался пользоватся на CL либо вообще нет документации, либо она настолько хуевая, что лучше бы не было. Начиная с гиперспека.
>>887184Гиперспек, конечно, выглядит стремновато, но он не так уж и плох, особенно если сравнивать с каким-нибудь доксигеном.
>>887184А так да, с документацией библиотек не так всё радужно.
>>887197Документация на format это адский ебаный пиздец. Проще в PCL сходить, чем найти нужную директиву в гиперспеке.
>>887211Не такой уж и пиздец. Но вообще да, было удобнее, если бы все директивы описывались на одной странице.
Как осилить модульное программирование в лисп и как он там вообще? Дайте ссылок.Что на счет gui? Хочется кроссплатформенно, конечно
>>887285В каком именно лиспе? Берешь и осиливаешь, точно так же, как в любом другом языке. В чем конкретно вопрос?Насчет гуи - есть гтк\свт\свингпростихоспати\хтмл+цсс\реакт\реакт нейтив для андройда и айфона\биндинги к андройд сдк\хуйзнаетчтоеще, короче - все есть, конкретизируй вопрос.
>>887140Лучше завершу некоторые дела, потом запилю демку и вброшу сюда, а то объяснять текстом долго и лень.
>>887392Я о коммон лиспе, конечно же.Нет какой-то либы для всех платформ, дабы абстрагироваться?
>>887456Конечно есть. Называется кложур.
Почему в емаксе так неудобно редактировать код? Я поставил lispbox
>>887501Если ты поставил ванильный емакс, а до этого пользовался только блокнотом, то конечно неудобно.Емакс как музыкальный инструмент, сначала ты его осваиваешь, а только потом можешь издавать прекрасные звуки.
>>887456-> >>887500 вот этот базаритС кл тебе претти мач придется юзать гтк, не припомню там других живых оберток. Может меня кто-то поправит.>>887501> lispboxБоже мой, где ты это говно мамонта откопал? Юзай https://github.com/syl20bnr/spacemacs - ну или имакс прелюд, например. Вообще, судя по твоим постам ты, мм, новичок в программировании. В таком случае начинать с коммон лиспа - это очень странный и неудачный выбор. Есть plt racket, он специально сделандля изучающих кодинг, там сразу и редактор с ide, и гуй-библиотека, короче - абсолютно все в одном месте и из коробки, скачиваешь один исполняемый файл и все.
>>887456Из того, что кроссплатформенно, опенсорсно да, есть и проприетарные и пригодно для использования:qt: https://shinmera.github.io/qtools/ https://shinmera.github.io/qtools-ui/electron: http://ceramic.github.io/gtk: http://www.crategus.com/books/cl-cffi-gtk/ http://www.crategus.com/books/cl-gtk/gtk-tutorial.html>>888068>-> >>887500 вот этот базаритДесктопное приложение на жаве?! Да вы, мусьё, изв^Wкложурист.
>>888094Ну можно на ноде, а не на жаве.
>>888101Ну можно-то оно что угодно, хоть на mcclim'е педалить да x-сервер с собой таскать. Но только нужно ли?
>>888104Это вопрос философский. А вот то, что люди так делают - ето факт.
>>888485Ваше мнение очень важно для нас. Держите нас в курсе.
>>888485У меня дежавю или эта ссылка уже ранее фигурировала здесь?
>>888709Была в прошлом треде кажется. Хватит тут рекламировать свою залупу.
Анон, подскажи пожалуйста: нужно написать функцию которая на вход принимает список пар [(Int, Int)], а возвращает список пар сгруппированных по первому значению [(Int, [Int])]. Tо есть если на входе [(0,1), (0,2), (1,3), (1,4)] вернуть она должна [(0,[1,2]), (1,[3,4])]haskell треда не нашел, но мне главное принцип, а код сам напишу
>>889205https://gist.github.com/anonymous/55538d787adf8d9c2f1bf25dcff6442bвозможно есть более красивое решение.Второй пример на эликсире, там group_by принимает опциональный параметр mapper, который и делает все красиво
>>889205ну и на кложеА если использовать plumbing, то чисто теоретически можно и так(grouped-map first second ['(0, 1), '(0, 2), '(1, 3), '(1, 4)])
>>889256Не могу избавиться от чувства, что у тебя сломана подсветка.
>>889415ты про abs? Все таки не ide, подсветка не такая умная, чтобы различать builtin функции и переменные. Я обычно просто не использую такие идентификаторы, но сейчас было лень придумывать
>>889415а если ты про то, что закрывающие скобки серые, то это из-за parinfer. Сервые скобки почти не видны и чисто психологически проще использовать паринферhttps://shaunlebron.github.io/parinfer/
>>889483Не очень понял, оно чем-то отличается от smartparens? Ну кроме ебанутой подсветки.
https://github.com/burtonsamograd/emacs-jitКто-нибудь пробовал?
>>889536а я где-нибудь сравнивал с smartparens? Есть еще несколько аналогов, че ты их не перечислил?Разница в том, что smartparens для emacs, а parinfer для практически всех современных редакторов.Фичв с затемненными скобками сугубо опциональна - кому не нравится, может отключить. Но она все таки помогает психологически не лезть удалять лишние скобки, а просто уменьшить отступ.
>>889539>пробовал?зачем? героин больше вставляет
>>889251>>889256Спасибо большое!
>>889545Сравни со смартпаренс. Че лучше?
>>889545ну по гитхабу смартпаренс мне больше нравится. Паринфер исключительно для лиспов, смартпаренс судя по всему работает с любыми вложенностями. Сравнить иначе не могу, имаксом не пользовался ни разу.
>>889598Смартпаренс нужно как следует допиливать, потому что из коробки оно нормально работает только с лиспом. Но все крутилки там есть. А в чем ты там лисп то пишешь?
>>889599атом это чистый + паринфер. Хочется перейти на имакс из-за сидра, но боюсь мой комп с 4-мя гигами оперативы, постоянно работающими рельсами, хромом и бутом/лейном, не потянет интерактивную разработку
>>889601Лол, это точно. 10 гигов сжирает в лет это ваша жвм.
>>889601Emacs-nox не так уж много ест.
>>889601EightMegabytesAndConstantSwapping
>>889483Про скобки, да. Ненавижу незакрытые скобки. От кода на картинке у меня учащается сердцебиение и появляется мерзкое чувство тревоги.
>>889569Паредит.КО
>>889641Память жрет не емакс, а жвм.>>889661Чего может паредит, чего не может смартпаренс?
>>889765Если честно - я не юзал смартпаренс, это какая-то новая штука, а паредит был всегда. Он умеет делать структурные переносы на уровень вверх и вниз? Я даже хз, как это словами объяснить, погугли демку на ютубе если что.
>>889768Я как раз наоборот, юзал только смартпаренс. Потому что когда нужно было выбирать, я сравнил их, и получилось так, что смартпаренс умеет все что умеет паредит и еще сверху всякого. У него даже есть готовый сетап, типа включи-ка мне биндинги ка у паредита.
>>889803Еще и сверху всякого?! Ок, мне даже представить сложно, пойду сам тогда погуглю.
>>889256а что за плагин, который стрелочки заменяет?
>>890652http://emacsredux.com/blog/2014/08/25/a-peek-at-emacs-24-dot-4-prettify-symbols-mode/
>>890652в моем случае (автор скрина) это просто шрифт с лигатурами - https://github.com/tonsky/FiraCode
>>890808Как по мне выглядит это отвратительно.
>>890815ну так не используй, никто же не заставляет) Мнение анонов тут интересно меньше всего
>>890851А что тут еще кроме мнений есть-то? Ради знаний есть книжки, ютубы и всякие стек оверфлоу. А тут просто говном покидаться, да личное мнение посмотреть.
https://cemerick.com/2016/12/07/rip-anthony-grimes/Пацаны, raynes умер. Пиздец какой-то, ничего не понимаю. Он же на год младше меня был. Не сказать, что мы с ним прям особо общались, но блин. Помню, как он меня в ирц троллил, лол. И как он после того, как кложурное комьюнити собрало ему бабла на билет до конференции, писал в блоге о том, что мол йееееей, меня настоящая живая женщина обняла, лол. Он тогда еще пиздец каким жирдяем был. И еще как я чуть не проебал на его пастебине все свои пасты, когда юристы из-за спамеров заставили его вырубить, хех. Странное ощущение - вроде я его и не знал даже, но как-то мне хуево.
>>891206Да не переживай ты так, в конце-концов он всего лишь кложурист
http://pastebin.com/zyHjPVeSчто я не так делаю? for - проход по списку с выполнение кода и проброс аргументов - вроде работает, но если проход в проходе делаю - шлёт нахуй. и да, наверно это как дерьмо выглядит, но мне хочется так, чисто из академического интереса. вкатываться начал позавчера и да, это emacs lisp.
путём раскрытия вроде понял, нельзя через eval вызывать функции из, чтоль, cl-labels.
да всё. на глобальную переписал - заработало. cl-labels перекрываются может, или чё - впадлу читать, я тут говна навернул из 70 пол книги - хватило, до сих пор кал из зубов выковыриваю.
Почему mocl стоит так дорого? Нет ли каких-то начальных поделок студентов, которые можно доработать вместо этого дорогого?
http://rgho.st/8LfsYx5LT залил Анси Коммон Лисп от Пола Грэма
>>891757Где ж дорого, совсем и не дорого.
>>891817Тыща баксов же, не?
>>891829Двести
https://www.quicklisp.org/ это типа пакетный менеджер для лиспа? И им пользуются нормальные пацаны или нет?
>>891781Зачем вы это делаете? Нельзя просто ссылку на gen.lib.rus.ec дать?
>>891977Пользуются. Просто нормальных посонов пользующихся общелиспом пренебрежимо мало.
>>891757Есть опенсорсный ecl, который компилится через сишку, но он не умеет в кросскомпиляцию. Автор говорит, что его код для этого нужно прилично перелопатить.Также существует clasp, но он пока только пилится и совсем сырой.
Аноны, что скажете за htdp курс на edx, хорош ли? При том, что cs50 я уже прошел
Ну что, хипстеры, все ретроградствуете?Поясните, пожалуйста, почему нельзя считать руби развитием идей общелиспа, и вообще, назовите хоть одно фундаментальное различие между ними, не считая синтаксиса и махрового легаси вроде cons-ячеек, очевидно.
>>893236Где еще ты можешь редактировать не странный текст, а синтаксическое дерево?
>>893236Разве в раби метапрограммирование не уровня жс (тупая интерпретация строк)?
>>892464Забей на SICP/TAPL/HtDP парашу. Сразу читай Lambda The Ultimate, затем OnLisp, наконец плавно переходи к Introduction to MIPS Architecture - идеальная архитектура для реализации своего первого Lisp-компилятора на основе CPS. Если интересуют структуры данных, то только MIT-овский 6.851 Advanced Data Structures. Виртом и Ахо-Копрофтом можешь сраку подтереть. Кнута не читай, ему есть адекватная замена - книга Hacker"s Delight.
>>893238В пистоне, например. https://docs.python.org/3/library/ast.html>>893244Разве макросы в CL (ты же об этом, да?) не существуют, в основном, для компенсации небогатого синтаксиса?
>>893256Ты про reader-макросы что ли? Ну да, они для этого и нужны.
>>893256Вопрос был о том, что лиспокод это AST. И ты редактируешь не строчки, а сразу AST.Посмотри вот это: http://www.parens-of-the-dead.com/
>>893248Добавил в свою копилку advanced-чтива.
>>892464Забей на Lambda The Ultimate/OnLisp/Introduction to MIPS Architecture парашу. Сразу читай SICP, затем TaPL и наконец плавно переходи к HtDP - идеальное руководство для реализации своего первого первого полноценного проекта. Если интересуют структуры данных, то только Аховский Data Structures and Algorithms. Маккарти и Тернером можешь сраку подтереть. Уоррена не читай, ему есть классическая замена - книга The Art of Computer Programming.
>>893346>>893289>>893248http://macode.ru/
>>893248Охуенно ты конечнo tapl & htdp рядом поставил.
>>893260До тех пор, пока парсер не сделает свою работу, никакого AST в принципе нет, ты редактируешь все те же строчки, не говоря уже о макросах, которые могут экспандиться хуй знает во что, reader-macros, на которых можно сделать хоть транслятор PHP в s-expressions.>>893258Я о том, что метапрограммирование уровня CL -- это костыль, возникающий от недостатков в дизайне языка. У пишущего на раби или любом другом современном языке потребности в определении новых синтаксических конструкций, как правило, не появляется. Это такой же атавизм, как и cons-ячейки.
>>893932То же, что утверждать, что функции>-- это костыль, возникающий от недостатков в дизайне языка. У пишущего на рабивасике или любом другом современном языке потребности в определении новых функций, как правило, не появляется.Толстовато.
>>893941>Толстовато. Если ты это о своём посте, то да. Синтаксис -- средство, а не цель, поэтому, во имя консистентности, целесообразнее выделить из множества синтаксических конструкций подмножество тех, которые позволяли бы описать любую из возможных функций, чем заставлять программиста заниматься этим самому. Как пример -- стандартная в лиспе практика использования макросов вроде with-something. На рубях подобное пишут, не прибегая к "метапрограммированию".
>>893976Макросы суть те же функции с тем лишь исключением, что они могут принимать код в качестве аргумента. Собственно и "консистентность" они нарушают не более, чем самописные функции.>целесообразнее выделить из множества функций подмножество тех, которые позволяли бы описать любую из возможных предметных областей, чем заставлять программиста заниматься этим самомуВот как-то так это звучит. Ты же понимаешь, что не просто так люди на XML программируют.
>>893932Вот только в лиспах почему-то поддержку cps, контрактов, типов, erlang-style обработки исключений и паттерн-матчинга запиливают с помощью библиотек, а в других языках приходится ждать новой версии языка. Ну и да, толстовато. Ни в руби, ни в лиспах не шаришь, сразу ведь понятно.
>>879929Стажёром пойти без диплома, возьмут?
Что может стоять на месте x в следующих выражениях?(a) > (car (x (cdr ’(a (b c) d)))) B(b) > (x 13 (/ 1 0)) 13(c) > (x #’list 1 nil) (1)
>>894994Ну чего же ты, анон, это ж проще простого.carorapply
Почему лисп хорош для всяких ИИ?
http://learnlispthehardway.org/
>>895639Её уже дописали?
>>895603Никто точно не знает. Боюсь, человечеству потребуется ещё ни одна сотня лет, чтобы всецело понять магию скобок.
>>895603Нипочему. Это миф.Т.е. он мог быть в чём-то хорош для символьных вычислений, что есть форма ИИ, но это всё в далёком прошлом.
IDE для общелиспа. https://shinmera.github.io/portacle/
>>897351Как под этим под виндой сделать vim-mode?
>>898986evil прикрути. Но только зачем?
>>899007Я не умею, мне неудобно, я плохой. Но как это сделать?
>>899085Вим поставить - не вариант? Тем более, если ты виммер, то прикрутить slimv должен осилить.
>>899085Ну или spacemacs
https://www.gnu.org/software/guix/ - новый нескучный дистрибутив, основанный на NixOS.NixOS/Nix Package Manager используют для сценариев сборки пакетов и конфигов системы DSL похожий на Haskell, здесь же для этих задач используется Guile Scheme.
(let ((seed 1234))(defun rand ()(setf seed (mod ( seed 16807) 2147483647))))Почему после каждого вызова (rand)[2]> (rand)20739838 ; здесь я понял, 123416807[3]> (rand)682106452 ; а тут с хуя такое[4]> (rand)895431078 ; ??????????????Выходят такие ответы?
>>899448(let ((seed 1234))(defun rand ()(setf seed (mod (звездочка seed 16807) 2147483647))))
>>899449Разобрался, спасибо.
Экспертную систему реально осилить на общелиспе?
>>900243Ее и на паскале можно. Почему не пролог?
>>900349Потому что на лиспе есть свой пролог. Это то, что обязан запилить каждый начинающий лиспер.http://franz.com/support/documentation/current/doc/prolog.html
Можно ли найти работу на лиспе? А может даже удаленную? В гугле лишь сомнительные ссылки
>>903508На кложе разве что, остальные лиспы никому нахер не вперлись кроме комонлисперов отсюда
>>903508Очевидный лиспджобс.Алсо, лисповакансии нужно не искать, а создавать самому.
>>903508у crossover была пара вакансий на удаленку поддерживать легаси на крестах и общелиспееще есть AutoCAD где AutoLISP встроенный язык, на hh иногда встречаются вакансии
>>903688Кстати, да, самый верный способ покодировать на Лиспе на работе-AutoCAD, но туда не вкатиться, как в айти после пары книжек.
Как вычислить сколько осталось до конца Кали-Юги?Она началась 23 января 3102 года до нашей эры, а должна окончиться через 432 тыс. лет после начала.
>>904207[code lang=lisp](defun сколько-там-осталось-то? (&optional (от (сегодня))) 'дохуя)[/code]
Можете пояснить за сборщик мусора в лиспе и можно ли сделать лисп без него? И вроде есть еще компиляторы лиспа в Си, что скажете? И насколько будет плохо, если я буду работать с лиспом в vim?
>>904713Не пойму, ты о Common Lisp спрашиваешь или о лиспах в целом?>и можно ли сделать лисп без него? https://www.reddit.com/r/lisp/comments/4mtktn/bone_01_lisp_without_garbage_collection/>И вроде есть еще компиляторы лиспа в Си, что скажете?ECL, например, мало кто использует, потому что медленнее остальных реализаций и не полностью соответствует стандарту.
>>905029Спасибо. Еще такой вопрос. Как лисп и шитый код вместе?
>>905167Так форт - ето тот же лисп, только без скобочек и для пещерных людей
>>905167Що? Куда шитый код?
Ну что вы, общелюбы? Каково это, жить без call/cc в 2017 году?
>>905683Ну кложуристы вон вообще без TCO, и ничего, как-то обходятся.
>>905703На кложу обычно с явы/жс переходят, а там народ, как мы знаем, беспринципный, непривередливый, им что бэйсик, что хаскель, что вилкой, что лопатой - всё одно. Про такие мелочи как tco или call/cc и говорить не приходится, тем более, что они в CPS и руками писать не гнушаются.
>>905712Тсо не нужно. Хвостовые вызовы должны быть явными. Когда у тебя итеративный процесс и рекурсивный процесс выглядят одинаково, это плохонько и мислидинг.
Ананасы, как сделать так чтобы эмакс показывал только одно окно на фрейм. Т.е. если я открываю второе окно, то он просто создает фрейм с ним
>>905787О, а вот и оправдания "это не баг, а фича" подъехали. Такие как ты и бэйсик оправдывали, что де код должен быть явным и без черных ящиков, и полиморфизм у вас был вредным.>Когда у тебя итеративный процесс и рекурсивный процесс выглядят одинаковоЩито?
>>905798>если я открываю второе окноЧто-что ты делаешь? Можно разделить текущий фрейм на два окна, а открывают, например, файл
>>905703Прямо как общелисперы, только у тех даже явного тсо нет.
>>905801Я не хочу несколько окон в фрейме, я хочу много фреймов и в каждом по окну чтобы управлять ими через WM
>>905817Есть. И даже во взаиморекурсивные умеет. И даже без костылей, как у кложуристов.
>>905829https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-Hooks.html#Standard-Hooks>buffer-list-update-hookВот, кажется, подходящий хук.
>>905799> ЩитоВот когда поймешь - возвращайся и поговорим про бейсик.
>>906439Будто с тобой есть о чем говорить. Спорол хуйню и доволен.
>>899353>https://www.gnu.org/software/guix/ - новый нескучный дистрибутив, основанный на NixOS.>NixOS/Nix Package Manager используют для сценариев сборки пакетов и конфигов системы DSL похожий на Haskell, здесь же для этих задач используется Guile Scheme.Анон, если смог установить GuixSD на жёсткий диск, отпишись, как ты это сделал,Я записал на флэху через dd и запустил на 2 своих компах, ни на одном не взлетела графика, тупо логинится в root. Иксы (startx) не стартуют, mc в наборе нет, доустановить не могу из-за проблем сети.Пеняю на швабодное ядро, linux-libre не воспринимает мои графические карты, на ЛОРе camel отписался что у него есть нормальное ядро с блобами, но как его впилить в образ "gnu-disk-image" - фиг знает.Нужна помощь, небольшое количество Яндекс.Денег в качестве благодарности гарантирую.
Хочеться написать свой лисп. Это нормально?
>>906510Да, даже книгу для таких написали - Lisp in Small Pieces
>>906480>ни на одном не взлетела графикаА ты уверен, что там есть чему взлетать? Образ-то хоть и сжатый, но всего на 140мб, если иксы туда и впихнули, то без какой-либо оболочки.
>>906534>А ты уверен, что там есть чему взлетать? Образ-то хоть и сжатый, но всего на 140мб, если иксы туда и впихнули, то без какой-либо оболочки.Послеxz -d guixsd-usb-install-0.12.0.x86_64-linuxполучилось 900 Мб.Не думаю, что guixоделатели ожидают, что их пользователи будут настолько кульхацкерами, что начнут сами ставить иксы. Хотя кто их знает... Попробую в мане https://www.gnu.org/software/guix/manual/ про иксы почитать.Но даже если допустить, что они не положили в исходную поставку иксы (хрен их знает, на самом деле), надо понимать, как их установить и прикрутить сверху кеды с КДМ-ом (или что там сейчас за него).
>>906555Я отбежал.
>>906443Значение какого слова тебе непонятно?
>>906555Я посмотрел, иксов в установочном образе и правда нет, но в desktop.scm, который в руководстве предлагают использовать в качестве основы, прописаны и гном, и крыса.https://www.gnu.org/software/guix/manual/html_node/Proceeding-with-the-Installation.html
А правда, что лисп без проблем можно использовать на квантовом компьютере?
>>907298Не более чем остальные. http://www.schloerconsulting.com/quantum-computer-q-lisp-programming-language
Серия статей про реализацию эмулятора CHIP-8 на общелиспеhttp://stevelosh.com/blog/2016/12/chip8-cpu/
>>909970Завидую ему, хотелось бы тоже иметь время на подобные эксперименты.
>>910309Да просто признай, что у тебя давно уже не осталось сил и мотивации на подобные эксперименты, а не времени.
бампкакой фреймворк использовать для юнит-тестов?
кроссовер упорно который месяц ищет лиспера..hh.ru/vacancy/19379442при чем они нормальная контора, сейчас и вообще топчик чтобы работать удаленно..
>>911304>Required Skills:>C/C++ programming using MS Visual Studio IDEЛиспера они ищут, хохо.Жуткое легаси под Win'95, вот у них что.
>>911249Любой. Prove, например
>>911249Юнит-тесты не нужны.
>>912474ты сейчас сам себя обоссал
>>915341Как там в 00-ых?
Поясните за Racket.
>>912474>динамикопараша >тесты нинужны Уряяя
>>915618> Юнит-тесты> тестыПочему ты такой тугой?
>>915617Поясняю.Ну серьезно, хоть немного конкретизируй запрос. Ракетка - хорошо и замечательно, если в общих чертах.
>>915627Ну, например, какие отличия от просто Scheme и всяких Common LISP. Еще интересует о среде Dr.Racket и ее удобстве.
>>915634Common lisp - это друглй язык. Ракетка - одна из реализаций\диалектов схемки. Но на самом деле это больше, чем схемка - это еще и исследовательский проект, и многоязыковая среда для обучения програмированию. По поводу удобства - ну так возьми да скачай, попробуй. Ты чего аутируешь-то?
>>915617Схемка с кучей йоба-батареек, средой разработки из коробки, что снижает порог входа. Батарейки крутые, интересные, но кроме них больше ничего нет, и работает это счастье слишком медленно.
>>915634>какие отличия от просто SchemeПро схему тебя пояснили>и всяких Common LISPа про всякие другие в шапке более-менее расписано.>Еще интересует о среде Dr.Racket и ее удобстве.Удобство - это не про неё, вот что мне кажется.Емакс с гейзером лучше, хоть и чуть сложнее в освоении. Но до slime всё равно ни то, ни другое не дотягивает.
Paradigms of Artificial Intelligence Programming - Peter Norvig есть у кого во читаемом формате? EPUB/FB2 было бы идеально.
О! Тут есть кто живой, или лисперы вымерли, так же, как и паскальщики? Короч, надо накактать нешарящему ну вот ни разу человеку рабочцю программу для коммонлиспа, которая делает ничего, кроме переименовывания внутри выражения sin на cos, sqrt же -- на abs. Буду очень благодарен за быстрый ответ.
>>920272Но зачем?
>>920272Тебе же не тупой реплейс нужен? Верно?
http://phoe.tymoon.eu/clus/doku.php?id=clus:todo
Пиздец, задали работу по этому, а никто не кодит, купить не у кого.
>>921093Ну так запили, раз задали. В чем проблема-то?
>>921165Я из тех, кто покупает и так сдает. В понедельник сдавать, будь это Паскаль или С++, то уже бы нашел, а это... Нашел одного человека, жду когда ответит. Если не ответит, то жопа.
А что крутые хацкеры думают насчёт cl21? http://cl21.org/ Стоит-ли эта библиотека внимания, или это всё от лукавого?Вброшу ещё один приятный лиспик на этот раз поверх питона: hylang: http://docs.hylang.org/en/latest/
>>918515в pdfhttp://www108.zippyshare.com/v/Ew2vjCEW/file.html
>>921174> More object oriented.> Syntax for regular expression.Ох...Сколько уж этих редизайнов было.
> even Clojure doesn't have reader macroНеправда, кстати.Вообще, клу нужен нормальный новый стандарт, а не наколенные поделки, иначе никак не взлетит, имхо.
>>921182Спасибо, бро!
>>921245>Сколько уж этих редизайнов было.И сколько? Что-то я ни одного не припоминаю.
>>895603>>895650Для ИИ зделали пролог, а лисп язык общего назначения.
>>922243Экспертные системы - не ИИ
https://github.com/TBRSS/overlordбамп
>>907186Бамп GuixSD, пользователи отзовитесь
>>931379Почто призываешь нас?
Поясните за этот ваш лисп на андроиде. Вот это https://play.google.com/store/apps/details?id=com.sattvik.clojure_repl&hl=ru полноценный лисп? Или это https://play.google.com/store/apps/details?id=ar.com.playnu.clrepl
>>931729Смотря для чего тебе. Если просто поиграться с реплом, то да, полноценные.
>>931754Есть некий код для общелиспа http://www.fuzzylisp.com/downloads.html его можно запустить на этих приложениях?
>>931758Первое только для кложуры, совсем другой язык.А во втором - да, должно.
http://brutalism.rs/post/process-aesthetic-engine-2/
>>931618>Почто призываешь нас?Поясните, как установить систему, вернее, как поменять на ней очищенное от блобов линукс-ядро на обычное "блобосодержащее" https://github.com/8p8c/my-guix/blob/master/packages/linux-nonfree.scm (у меня свободное ядро ругается на отсутствие драйвера под модем, соответственно не поднимается сеть)Также, как в системе могут одновременно содержатся >и гном, и крыса >>907186и отсутствовать иксы?Как поставить последние кеды, буду разбираться после того как осилю установку.
>>875320 (OP)>+ AllegroCL IDE упаси божеЧем он плох?
>>876958Да: https://archive.org/details/bitsavers_symbolicsb_3912644
Хули все опенсорсные реализации CL так дерьмово работают под виндой? Существуют ли годные библиотеки для современного OpenGL?
>>935278Слишком маргинальное и малочисленное сообщество, на нормальные порты не хватает. Ставь виртуалку и пердолься, много времени и нервов сбережёшь.
>>935278Потому что программисты не пользуются виндой.капитан
>>935195А ты его не видел?>>935278А в чем проблема? Насколько я знаю, ccl и sbcl уже давным-давно нормально работают под виндой.>Существуют ли годные библиотеки для современного OpenGL?cepl, varjo, cl-opengl
Как раз давеча наткнулся на это, с виндой, кстати:https://www.youtube.com/watch?v=W3kfDKDSvM8
>>879929>Опыт программирования на Haskell в коммерческих проектах не менее 5 лет.Какое изящное унижение борщехлебов.
>>936075Блин, там на жабе 5 лет, а я повелся:https://spb.hh.ru/search/vacancy?text=haskell&area=2Интересно, что количество вакансий по Clojure и Haskell в России почти совпадает (22 и 20).
>>936078...при этом кложурь раза в три моложе х-ля.
Не пропустите, лиспаны: https://hh.ru/vacancy/19680371
Почему Guile не выводит результат только когда я ему интерактивно всё ввожу?Когда скармливаю файл с тем, что я ввожу он просто его компилирует, запускает и не выводит результат.Gambit делает тоже самое, разве что не компилирует.ЧЯДНТ?
>>937206>зп: 25 тысяч рублей. На испытательный срок (3 месяца) - 15 тысяч рублей.
>>937923>Уровень зарплаты>з/п не указанаwat
>>937851Потому что ты не выводишь результат?
В Allegro CL до сих пор есть код Symbolics, забавно.
>>940211В maxima тоже можно найти много старого кода.
Кто-нибудь проходил эти курсы? http://franz.com/services/classes/
>>941061Сомневаюсь. Вообще, не очень понимаю, зачем подобные курсы нужны.
У кого-нибудь McCLIM устанавливается через Quicklisp? У меня происходит какая-то странная хуйня:(ql:quickload 'mcclim)To load "mcclim": Load 1 ASDF system: mcclim; Loading "mcclim"To load "trivial-gray-streams": Install 1 Quicklisp release: trivial-gray-streams debugger invoked on a SB-INT:SIMPLE-STREAM-ERROR in thread#<THREAD "main thread" RUNNING {10039CE5B3}>: couldn't read from #<SB-SYS:FD-STREAM for "socket 10.0.2.15:34237, peer: 52.222.157.198:80" {10062CEA63}>: Connection reset by peerЕсть ли вообще смысл использовать CLIM вместо биндингов ко всяким Qt?
>>944939Поставил trivial-gray-streams вручную, теперь установка McCLIM стопорится из-за зависимости swank:[package swank/sbcl];; caught ERROR:; READ error during COMPILE-FILE:; ; The symbol "HOST-ENT-ADDRESS-TYPE" is not external in the SB-BSD-SOCKETS package.; ; Line: 117, Column: 76, File-Position: 3633; ; Stream: #<SB-SYS:FD-STREAM; for "file /home/yaroslav/quicklisp/dists/quicklisp/software/slime-v2.19/swank/sbcl.lisp"; {1007CEA9E3}>;;;; Error compiling /home/yaroslav/quicklisp/dists/quicklisp/software/slime-v2.19/swank/sbcl.lisp:;; COMPILE-FILE returned NIL.;;То ли я ебанутый, то ли лыжи не едут.
>>944978Наконец-то получилось.
>>944983В чем проблема была?
>>945042Лыжи не ехали.
>>945042Я не копался в причинах, просто поставил вручную trivial-gray-streams и проигнорировал ошибку при установке swank. Наверное это какой-то баг в Quicklisp.
>>946153>grep host-ent-address-type -iR .>./sbcl-1.1.6/contrib/sb-bsd-sockets/name-service.lisp: (address-type :initarg :type :reader host-ent-address-type)>./sbcl-1.3.14/contrib/sb-bsd-sockets/name-service.lisp: (address-type :initarg :type :reader host-ent-address-type)>./sbcl-1.3.14/contrib/sb-bsd-sockets/defpackage.lisp: host-ent-address-type host-ent-addresses host-ent-addresПохоже, у тебя просто старый sbcl.
>>946153И кстати, у меня с trivial-gray-streams из quicklisp'а mcclim работает.
Стоит качать VS2017? Или там могут быть проблемы непофикшенные?
>>951248Ой, тредами промахнулся. Я еще сижу и думаю чего все на лиспе так помешались.
>>951250>сижу и думаю чего все на лиспе так помешалисьКакой-то странноватый у тебя досуг: надумал себе чего-то и сидишь да размышляешь.
>>877179>материалов на русскомв биореактор, быдло
>>951666На родном языке-то всяко комфортнее воспринимать.
Хочу отключить один pizda-minor-mode, когда включен определенный major-mode и вместе с ним определенный xyu-minor-mode, как-то так можно?
>>952490Добавь в xyu-minor-mode хук, который будет проверять условия и отключать pizda-minor-mode
>>952496О заебись получилось, я мажорному сначала хотел хук прописать, не срабатывало, а когда минорному все ок.
есть ли стандартная функция генерации случайных числе(Bignum) в scheme? random работает с обычным интом
Читаю sicp. Смутило упражнение 1.7:The good-enough? test used in computing square roots will not be very effective for finding the square roots of very small numbers. Also, in real computers, arithmetic operations are almost always performed with limited precision. This makes our test inadequate for very large numbers. Explain these statements, with examples showing how the test fails for small and large numbers. An alternative strategy for implementing good-enough? is to watch how guess changes from one iteration to the next and to stop when the change is a very small fraction of the guess. Design a square-root procedure that uses this kind of end test. Does this work better for small and large numbers? Вот процедура:(define (sqrt x) (sqrt-iter 1.0 x))(define (sqrt-iter guess x) (if (goodenough? guess x) guess (sqrt-iter (improve guess x) x)))(define (average x y) (/ (+ x y) 2))(define (goodenough? guess x) (< (abs (- (square guess) x)) 0.001))(define (improve guess x)(average guess (/ x guess)))(Define (abs x) (Cond ((< x 0) (- x)) (else x)))(Define (square x) (* x x))Почему тест фейлит на маленьких числах мне понятно, но почему "inadequate for very large numbers" я не понимаю. В распоряжении лишь онлайн интерпретатор, так как двачую с яблока. https://scheme.cs61a.org/editor.html и этот интерпретатор выдает "FormatException: Invalid integer" при попытке выполнить процедуру sqrt с оче большим числом, типа:9999999999999999999999999999999999Вроде с сильно большим числом должно зацикливаться?Я переписал goodenought? как:(define (goodenough? guess x)(And (< (Abs (- guess (improve guess x))) (/ guess 100000))(< (abs (- (square guess) x)) 0.001)))Тут иначе http://sicp.sergeykhenkin.com/2007/08/15/sicp-exercise-solution-1-7/ , приемлем ли мой вариант?
>>875320 (OP)Анончики, напомните, пожалуйста, как в Емаксе исполнить простейший код типа (* 2 2)?
>>954600С-x e?
Анон, есть один вопрос: Если бы тебе ресетнули все проффесиональные знания, и оставили лишь знания об источниках знаний, учебниках, курсах и подобном, какие учебники годнота, какие мусор. Какой список учебников по математике ты составил бы для средней школы? Просто я подозреваю, что я мыслю о математических процессах очень неэффективно и неправильно. Хочу поправить фундамент, так сказать. Особенно интересует есть ли годные англоязычные учебники по математике переведенные на русский?
>>957282Почему именно англоязычные учебники переведенные на русский? Смысл чтения подобных учебников?
>>957282СССРовские учебники (ну или программы по обучению, или... не знаю как правильно выразиться) по математике всем миром признаны самыми лучшими. Сравниться может с совком в этом только Корея. Так что подумай, не лучше ли на русском изучать?
>>957282>годные англоязычные учебники по математике переведенные на русский
>>957879>всем миром признаны самыми лучшимиНе имеющий аналогов, суетливый, сверхманевренный, блохастный учебник по математике под редакцией Садовничего.
>>952182Только если ты английский не знаешь.
>>957985Конечно, на уровне родного языка не знаю. Слишком уж это трудозатратно и неоправданно.
>>958154Ну тут нужно говорить не что ты не знаешь английский на уровне родного. А что у тебя боли при чтении информации на английском.Исправляется это только одним способом.
Common Lisp очень нравится, если я не ошибаюсь, хотя не ручаюсь, эти ребята его используют: www.konsom.ru/solutions, так что вещь стоящая. Scheme пользовался, действительно хорош разве что только для изучения, дальше пока не заходил. Подборка годная.
>>960196Зачем ты это постоянно постишь?
Наконец-то вкурил как работает CFFI, теперь могу пользоваться cl-sdl2 без баттхёрта.
>>960453cl-sdl2 до сих пор настолько сырой, что без знания CFFI им невозможно пользоваться?
Что-то без продвинутой системы типизации (в том числе и с зависимыми типами) и без монад да чистоты функций как-то смотрится на лисп, как на Си-- какой-то мира функциональных языков.
>>960523Ну, я не нашел другого способа изменять отдельные пиксели в поверхности. Документации нормальной, кстати, я тоже не нашел, при этом у более старого lispbuilder-sdl она есть.
>>960621В sdl2 же выпилили поверхности, теперь вместо них текстуры. Разве нет? В любом случае, не лучше ли будет работать с пикселями через opticl?
>>960635Поверхности никуда не делись. Меня интересует именно SDL сейчас.
>>960573>Си--Форт уж тогда
>>905703Есть (recur). Если этого мало, то завезли уже давно континюэйшены https://github.com/cjfrisz/clojure-tco
>>906480Устанавливал гикс на свой Доебан. Иногда он выключал мне компьютер после установки пакета. Надеюсь, уже починили
>>961017Костыли-костыльчики уровня cl-cont.
>>963354А нет, до cl-cont даже не дотягивает.
Кложа норм вариант для нюфани для вката в лисп? До этого писал на жаве и питоне, сейчас на жсе фронт пишу. Хочу функциональщины попробовать.
>>963558>Кложа норм вариант для нюфани для вката в лисп?Да, вполне, хоть и кложа немного особняком стоит в лисп-мире.Но если же ты хочешь попробовать именно функциональщины, то лучше взять что-нибудь из ML-семейства, потому что лиспы больше про метапрограммирование, чем ФП
Как и анон выше, вкатываюсь в кложур, и сука я горю от lein. Как эту хуйню поставить под винду? Это пиздец, то он его вообще не видит, то видит только из папки с jar-ом, то блять сново не видит. Примерный ход действий: скачал батник, который ставит 2.7 версию, прописываю в системыне переменныу путь C:\clojure-1.8.0\lein, так же пробовал тот путь, в который он ставится с помощью self-install, резуьтат один, видит его только если сижу в папке с jar архивом. Ну что за пиздец, как его юзать то ?
>>966232После 16 попытки походу заработало. Хуй его знает что ему не нравится.ЗЫ в конце переменной path нужны точка с запятой?
>>966232>Ну что за пиздец, как его юзать то ? Ну сам виноват, нормальные люди под шиндошсом не сидят
>>966556Как только на линуксе появится нормальный стек CAD/CAM систем, так сразу на него и перейду. А сейчас никому кроме кодеров ан фулл ставку и серферам интернетов он нахуй не нужен.
>>966746Тогда не жалуйся.
>>966746Есть же виртуальные машины. Убунту сервер, объединённая папка с хост-системой, сеть в режим bridge и вперёд.
>>966966Есть даже виртуальные контейнеры с ide и консолью, но нет хотим шиндоус
>>966966Да пусть кактусами давится, жалко что ли?
>>967002Это я про Cloud9, отличная штука
(define (accumulate op initial sequence)(if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence)))))(accumulate + 0 (list 1 2 3 4 5))В четвертой строчке op подчеркивается в Racket и пишет function call: expected a function after the open parenthesis, but found a variable.op является в данном процедуре +.Пример взят с SICP страница 122,процедура накопления.Почему не воспринимает op как + помогите,плиз.
Все решилось.Нужно было выбрать Determine language from sourse и #lang racket .Опять забыл поменять.
Бля, кто пояснит за repl в cgtqcvfrct (clojure). Это пиздец какой то, spc m e e(f), выдает ошибки, нихуя не вычисляется, вроде минуту назад все работало, написал еще пару функций - перестало. САм код:(defn print-and-say-hello [name] (print "Saying hello to " name) (str "Hello " name))(print-and-say-hello "Jeff")(def person {:my-name "Dmitriy" :las-name "Son-of-dog" :age "23"})(:my-name person)(defn average [numbers] (\ (apply + numbers) (count numbers)))(average [10 20 30 40 50 60 70])Халп, ткните носом, как последовательно получить результат работы всех этих функций
>>975315cgtqcvfrct = spacemacs
>>975315У тебя слеш не тот в функции average
Есть живые? https://pastebin.com/qdXuq5kqЕсть такой пример из годной книжки clojure for brave. Но не могу понять, почему после recur remaining в if (empty? remaining-asym-parts) меняется содержимое хэша? ПОлучается что remaining заменяет remaining-asym-parts ? Почему?
Заодно, объясните, как работает recur в данном случае, у нас получается есть функция recur и два (чего?) параметра (ну вы поняли) remaining и final-body-parts. Каую роль играет каждый из параметров? По сути recur вроде как должен возвращать значение, но тут их два. Нипонятно.
Вообще, куна нас кидает recur, в самое начало loop, к списку с аргументами, или сразу к телу функции (if в данном случае)?
Так, я вроде смекнул что recur возвращает два значения, которые соотв. присваиваются двум аргументам loop
>>983893recur - просто рекурсивный вызов текущей функции. Костыль такой, потому что jvm и потому что не осилили.
>>983882> clojure for braveПоясни за эту книжку плз, годная?
>>983970Годная, куда годнее немногочисленных изданий на русском. Если читать онлайн, то еще и бесплатная. http://www.braveclojure.com
>>984236Ахуенно, ушел качать емакс и учить кложу. Спасибо за наводку, анон.
>>983970ахуенная, поверхностная немного но прикольный стиль изложения. Мне покатила как первая книга по кложе (у меня уже был бекграунд в фп)
>>984258spacemacs
Аноны, что я делаю не так? https://pastebin.com/DNJbZD5y
Я, каталог-кун, заявляючто я повелся на бессмысленую пропаганду лиспоблядейи изучил етит их лиспзнание лиспа никак не помогло мне расширить кругозор или улутшить свой стиль программированиялучше уж хорший учебник Prolog-а почитать с разбором задаччем тратить свое время на бесполезное функциональное програаированиекраткий словарь:лямбда-функция как параметрфункция высшего порядка- функция в которую передается функция или которая возврвщаяет функциюзамыкание-то же что и лямбдамондада-массив
>>985277Доблбоеб спалился. Если ты прочел на вики что такое функция высшего порядка то ты еще не выучил фп, да ты и прочесть то не смог -> >замыкание-то же что и лямбдаЯ бы попросил тебя написать простейшую программку, что бы доказать, что ты не строчки на лиспе не написал, но я и так это знаю. Уебывай.
>>985334Нюфаня, please.
>>875320 (OP)Ебанный язык свел двачера с ума. https://lenta.ru/news/2017/04/21/sadkov/
>>985734Потыкал палочкой шизика.
>>985734Не язык, а политач
>>985277> лучше уж хорший учебник Prolog-а почитать с разбором задач> чем тратить свое время на бесполезное функциональное програаированиеПоэтому во все мейнстримные языки со всей силы тащат ФП-концепции, начиная с лямбд и ФВП и заканчивая трансдьюсерами, монадами и прочими сложными словами.> лямбда-функция как параметрОбосрался> замыкание-то же что и лямбдаОбосрался[2]> мондада-массив Обосрался[3]
>>989103Ловите нюфака пока не убежал.
Кложуране и не только, есть два вектора, если к ним применить (map list vec1 vec2), то он вернет сгруппированные по индексам значения из двух векторов, но что если вместо второго вектора дан вектор векторов, а нужно сгруппировать первый вектор с каждым из вложенных векторов(map list vec1 vec2.1)(map list vec1 vec2.2)(map list vec1 vec2.3)Как реализовать без циклов? Если хуево объяснил, то вот код https://pastebin.com/HLARTkNQНужно реализовать data-table, в Hint перечислены функции, которые нужно использовать.
>>990425[code](let ((keys (table-keys tbl))) (map (fn (%) (data-record keys %)) (rest tbl)))[/code]Кложи не знаю, но видимо как-то так.А вообще, кложурастов тут практически не обитает, потому что кложа - не лисп.
>>991129Работает, спасибо.>потому что кложа - не лиспЗато у нас есть [] и {}, признайся, ты тоже хочешь.А что считается топовым лиспом? Где то тут видел, но сейчас не нашел, кто то писал, мол, как там вы без фича-нейм в cl и кложур, но вроде кроме рокета больше ничего и нет.
>>991456>Работает, спасибо.>>потому что кложа - не лисп>Зато у нас есть [] и {}, признайся, ты тоже хочешь.В общелиспе они реализуются в несколько строк, но это не нужно, ибо солянка из разномастных скобок плохочитаема. Кстати, в кложе так сделать уже не получится.>А что считается топовым лиспом?Общелисп, конечно.>Где то тут видел, но сейчас не нашел, кто то писал, мол, как там вы без фича-нейм в cl и кложурДогадываюсь, схемер продолжениями хвалился. Но у них больше-то ничего и нет, в то числе и сообщества.
>>991129Тут не обитает, а свой тред-то у них есть? Куда податься кложуристу-ньюфагу?
>>991496В жава-тхренд либо в жс
Я вот хипстер с подворотами неофит от пограмирования и только недавно вкатился на первую работу, и вот решил на волне хайпа посмотреть все таки что такое функциональное программирование. Услышал про SICP, пищу первые хеллоувроды на SCHEME и вот мои первые вопросы:1. Собственно, а зачем лиспы нужны? Ну т.е. какова сфера применения? Академические исследования? Софт?2. Часто ФП еще называют декларативным программированием, но я так и не понял что оно такое. Т.е. вот например ф-я квадрат на пхп, или императивный стиль:function square($x) {return $x $x;}На лиспе оно как-то так:(define (sqaure x) ( x x))Но в чем глобальное отличие? Типа в первом - я говорю интерпритатору что и как сделать, а во втором - в общих чертах набрасываю? Нихуя не понимаю в общем.3. Почему под такие вещи не пишут удобных ide?4. На лиспах есть вообще удобные фреймворки, или сорт оф? Ну типа как ларавель на пхп. Допустим если я захочу на лиспе написать блог - что мне для этого требуется?
>>994268ФП это не декларативное. Декларативное это что-то типа пролога (с натяжкой). Его суть в том тчо ты не описывешь порядок действий, а просто вкидываешь системе начальные данные и говоришь "зделай заебись", а она дальше ебется.
>>994282Интересно, значит я хуйни наслушался.
>>994282Про лисп чего только не говорят, и что он ФП, и что декларативный. На самом деле что из него сделаешь то и будет. Это метаязык.На лиспе благодаря макросам можно запилить язык декларативного программирования под свою область.
>>994331Скажи, анончик, а на лиспе можно работу найти нормальную?
>>994333>язык без синтаксиса>найти работу нормальную
>>994337Не понимаю о чем ты говоришь, у лиспа так то есть синтаксис.
>>994341Я кстати охуеваю от синтаксиса, у того же scheme его за час можно выучить. Алсо еще вопрос, я так понял у ФП языков как таковых нет веще навроде переменных, типов данных? Т.е. в (define (sqaure x) ( x x)) - sqaure это просто ссылка на память?
>>994333Clojure
>>994356Можешь по-подробней пояснить за кложу. Я так понимаю что не просто кложей стак не ограничится?
>>994358скалу знаешь? у скалы есть скаласкрипт, который по сути является джаваскриптом с синтаксисом скалы и не совместим с самой скалой. у кложура есть подобное. кложур, как и скала, работает на жвм со всеми вытекающими (экосистема етц).на бекенде обычно ты будешь кроме кложы ходить в либы и легаси на джаве (реже на скале), на фронте я не видел чтоб часто юзали кложускрипт (или скаласкрипт).кложа не очень похожа на обычные лиспы, у нее синтаксис посложнее и еще куча мелких отличий от "обычных" лиспов, а еще в ней очень хорошо видно то, что она ориентирована на jvm.
>>994360Ну я сейчас пишу на жсе, и ищу еще какой нибудь интересный фп язык, на котором в будущем возможно будет найти работу и дополнить мой стэк. Как думаешь кложа под эти задачи подойдет?
>>994363вполне
>>994364правда я не видел чтоб у нас особо вакансий по ней было.
>>994343Так, короче. Во-первых, лишпы по сути не более ФП, чем какой-нибудь JS. Кроме кложи, она чуть ближе к функциональщине за счёт иммутабельности по умолчанию. Но все равно, в принципе в этих хипсторских экмаскриптах есть всё функциональное что есть в лиспах (по крайней мере из коробки, ходят слухи что с помощью макросов из лиспа можно сделать хоть C++, хоть Haskell, но на практике я такого колдунства не встречал).Дальше, труЪ-ФП язык, из того что хоть как-то близко к мейнстриму - это Haskell. Переменные в функциональщине конечно есть, как и типы данных. Просто переменные эти неизменяемы (и объекты, на которые они ссылаются, тоже, короче, чистое ФП вообще не подразумевает никакого изменяемого состояния). А на счёт типов - труЪ-функциональный Haskell как раз известен своей охуенно мощной системой типов, которая даёт на ротан всяким там джавкам и шарпам и концепции из которой нет-нет да перекатываются в вроде как даже императивщину, отличный пример - Rust (всё жду когда в него HKT завезут, вот тогда заживём!).Вообще, если попытаться максимально коротко описать основные принципы функционального стиля, это:1. Иммутабельность. Почему? Да потому что часто оно получается, во-первых, более предсказуемо, во-вторых, безопаснее при работе с многопоточностью, асинхронностью, вот этим вот всем. Если интересно как те же хаскеллисты избегают во многих случаев постоянного копирования данных при каждой операции, почитай про персистентные структуры данных.2. Отсутствие сайд-эффектов. В принципе изменение состояния тоже можно считать сайд-эффектом. Суть в том, что в чистом ФП функции формально не пишут ничего в консоль, не меняют файлы, не выводят графику. В общем, не производят никаких эффектов - просто вычисляют значение. Понятно, что программа должна производить сайд-эффекты, поэтому суть ФП в том чтобы их инкапсулировать (т. е. отделить "мухи от котлет", сайд-эффекты от основной логики вычислений). В Haskell это (и не только это на самом деле) делают с помощью тех самых монад. В не таких труЪ ФП языках как Haskell такого жёсткого разделения нет, просто большую часть функций стараются логически отделять функции, работающие с внешним миром, от функций, реализующих какую-то логику вычислений.3. Функции как объекты первого класса (т. е. ссылку на функцию можно передавать как любое другое значение), функции высшего порядка (это когда функции принимают другие функции в качестве аргументов и/или возвращают функции) и их активное использование. То есть например чтобы обработать список в функциональных языках используют не циклы (потому что циклы используют изменяемое состояние и вообще императивны), а функции высшего порядка. Функция map принимает функцию, применяет её к каждому элементу списка и возвращает список результатов. То есть map(f, [1, 2, 3]) это то же самое, что [f(1), f(2), f(3)]. В этом и проявляется "декларативность" - мы не говорим, "взять первый элемент, применить к нему функцию, добавить его в возвращаемый список, увеличить счётчик на 1", мы как бы говорим "в нашем новом списке каждый элемент - результат применения функции к соответствующему элементу в старом списке". И теоретически компилятор того же Haskell вправе применять их не по порядку (от первого к последнему), а в каком-то другом порядке или вообще параллельно. Короче говоря, мы описываем что хотим получить, а способ получения этого результата может в какой-то мере отдаваться на откуп компилятору. В императивных языках компилятор порядок вычислений не меняет, поэтому в императивных языках под декларативностью функционального стиля понимается не то что технически конкретный способ получения результата неизвестен, а то, что детали реализации инкапсулированы и код всё-таки выглядит более декларативно, чем при использовании императивных циклов. Хотя бы чисто визуально.Потом, есть ряд абстракций, которые все так или иначе связаны с предыдущими пунктами и которые прижились в ФП-сообществе. Ну типа там всякие функторы, монады, трансдьюсеры, вот это вот всё. На самом деле всё это довольно простые вещи, это как ООП-шные паттерны проектирования, только из мира ФП.А в коде "(define (twice x) (+ x x)" x - никакая не ссылка на память, конечно же (ФП стремится максимально асбтрагироваться от таких низкоуровневых понятий, как "ссылка на память"). Это обычная переменная с динамическим типом, как и в любом другом динамически типизированном языке, вроде JS, Python, PHP, Ruby и т. д. и т. п. То есть аналог на JS будет "function twice(x) { return x + x; }" или "const twice = x => x + x;". (я заменил square на twice и звёздочку на + потому что звёздочку здешняя разметка съедает).
>>994268>1. Собственно, а зачем лиспы нужны? Ну т.е. какова сфера применения?>Академические исследования? Софт?Нет, блядь, балет. Какая ещё может быть сфера применения у языка программирования общего назначения?>2. Часто ФП еще называют декларативным программированием, но я так и не понял что оно такое.Декларативным называют описание проблемы в терминах некой абстракции, отличающейся от абстракции машины (т.е. память и последовательность команд)>3. Почему под такие вещи не пишут удобных ide?SLIME. Было бы хорошим вопросом: почему для других языков ничего подобного рода не написали>4. На лиспах есть вообще удобные фреймворки, или сорт оф? Ну типа как ларавель на пхп. Допустим если я захочу на лиспе написать блог - что мне для этого требуется?Есть и не один.
>>994414Спасибо. У меня вообще сложилось впечатление, буд-то лисп это как глина из которой разработчик лепят что нужно для своих задач, не? Пост, есть что-то как slime под схем? Я просто по сикп хочу заниматься. Или это мне надо гуглить все эти плагины для емакс?
>>994385>Кроме кложиКложефанат незаметен. Ладно бы схему в пример привел, но не этот же недоязычок для скриптования явы, в котором даже tco нет.>ходят слухи что с помощью макросов из лиспа можно сделать хоть C++, хоть Haskell, но на практике я такого колдунства не встречалПлохо смотрел. Вот сишка, например https://github.com/y2q-actionman/with-c-syntax/blob/master/README.org
>>994421>У меня вообще сложилось впечатление, буд-то лисп это как глина из которой разработчик лепят что нужно для своих задач, не?Да, эта одна из его характерных фишек.>Пост, есть что-то как slime под схем?Slime только для общелиспа, у схемы geiser. Рекомендую просто взять спейсмакс, там уже всё настроено.
>>994333Можно, но сложно, потому что вакансий мало, а те, что есть, в основном с высокими требованиями.
>>994425Можно пару примеров таких вакансий, чтобы примерно уровень понять?
>>994429Из того, что сходу вспоминается, - grammarly. Вроде даже по СНГ искали лиспера
>>994431Спасибо, анончик. А на той же кложе может писать программы общего назначения, которые обычно пишутся на питоне, или пока маловатое библиотек для этого? Или может он просто не подходит для этого?
>>994449Из кложи ведь можно использовать библиотеки для джавы. Думаешь их не достаточно?
>>994470Ты прав, спасибо, что ответил на мои вопросы, пойду осваивать.
>>994449Все что можно писать на джаве можно писать на кложе.
>>994449>которые обычно пишутся на питонеНет, конечно. Ты бы согласился заменить весь используемый питонософт жавой? Сомневаюсь.>или пока маловатое библиотек для этого?Да библиотек-то достаточно, но есть у кложи один фатальный недостаток, из которого следует куча недостатков и в дизайне самого языка, и в его реализации, и сообществе, и, собственно, в библиотеках. И называется он JVM.
https://repl.it/languages/scheme кому интересно, нашел удобный онлиан интерпритатор лиспа. Есть даже возможность зарегаться и сохранять свои хеллоуворды. Мне пока для подделий из первой главы сикпа хватает.все то же неофит без подворотов
>>994683https://racket-lang.org/download/На, не мучайся.>интерпритатор лиспаСхемы. Лиспом обычно common lisp называют.
>>994889Интересно, а кто-то умудрился запустить ту же схемку на винде в нормальной среде разработки? Или никсы + емакс наше все? Я пробовал в эклипсе, но плагины так и не заработали.
>>997529>Интересно, а кто-то умудрился запустить ту же схемку на винде в нормальной среде разработки?Да, емакс работает. Алсо, для задачек их сикпа и дррэкет сойдет>Я пробовал в эклипсе, но плагины так и не заработали.Они давно протухли, ибо какой лиспер захочет поддерживать плагин на яве для неюзабельного монстра
>>997536>для задачек их сикпа и дррэкет сойдетДа все равно пиздец как неудобно после няшных иде от жетбрейнс.>Да, емакс работает.А есть какая-то инструкция как запустить емакс + спейсмакс на винду? Ну для таких неофитов, кому само слово емакс это сильное колдовство. Мне вообще так что бы изкоробки.
>>997539http://spacemacs.org/Распаковываешь в .emacs.d в домашней директории и просто запускаешь емакс, выбираешь нужные слои и пользуешься. Кстати, там же можно попробовать спейсмакс прямо в браузере. Непонятно зачем и как, но оно работает.Емакс можешь взять отсюда https://sourceforge.net/projects/emacsbinw64/files/release/
ПЕРЕКАТ>>1003393 (OP)>>1003393 (OP)>>1003393 (OP)