М.Двач / Программирование

Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

752 Кб, 640x511

Лиспотред №8 13 Ноя, 23:45 #875320 В конец треда | Веб

Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

Основные диалекты
— 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

Ответы935195954600985734

13 Ноя, 23:52 #2 #875323

Освятил http://www.youtube.com/watch?v=o4-YnLpLgtk

14 Ноя, 00:04 #3 #875327

Анон, где можно почитать про внутренности Общелиспа? Стек-куча-аллокация и т.д.

Ответы875348

14 Ноя, 00:51 #4 #875348

>>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

Ответы875435

14 Ноя, 10:25 #5 #875435

>>875348
Спасибо, анон!

15 Ноя, 04:23 #6 #875839

Что лучше: коммон лисп или схема?

Ответы875868

15 Ноя, 07:57 #7 #875868

>>875839
Смотря для чего. С моей точки зрения, общелисп практичнее хотя бы потому, что нет разрозненности между реализациями, отчего и библиотек больше, и качества они лучше.

15 Ноя, 15:05 #8 #876032

Если под "перекатом лиспотреда" имелось что-то помимо обновления информации в каталоге языкотредов, опиши, пожалуйста, в жалобе более конкретно, чего ты хочешь, буду рад помочь.

Ответы876829

15 Ноя, 15:33 #9 #876043

Кто-нибудь делал проекты на скобках сложнее laba1 и какие? Просто интересно.

Ответы876366876452

15 Ноя, 22:21 #10 #876366

>>876043
На кложуре просто пиздец сколько всего.

Ответы876528

16 Ноя, 00:44 #11 #876452

>>876043
в продакшене у меня есть пару проектов на кложе

Ответы876528

16 Ноя, 09:40 #12 #876528

>>876366
>>876452
И какие?

Ответы876529876619

16 Ноя, 09:55 #13 #876529

>>876528
Сама кложура частично и еще порты всякие

16 Ноя, 13:34 #14 #876619

>>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, это к примеру), поэтому я свалил с него

Ответы876928877097877206877969

16 Ноя, 20:28 #15 #876829

>>876032
Не, ничего более не имелось в виду, просто проследовал просьбе из шапки прикрепленного треда.
Хотя, конечно, можно было бы запилить оформление шапки как в крестотреде, но позже, т.к. пока времени на переоформление не имею.

16 Ноя, 22:38 #16 #876928

>>876619
Мы тут проект в прод начали делать на кложурскрипте. Взяли реагент, гарден, секретаря и еще какой-то залупы. Стоит ли брать ре-фрейм или проще накостылять? Надо чтобы обязательно был сервер-сайд рендер. Сейчас это сделано через эксресс+кложурскрипт на "сервере", чтобы компоненты были общими.

Ответы877061877097877202

17 Ноя, 00:07 #17 #876958

Нейронные сети на лиспе нормально делать?

Ответы876963876991877075935225

17 Ноя, 00:15 #18 #876963

>>876958
Какая разница на чем их делать?

17 Ноя, 01:06 #19 #876991

>>876958
абсолютно ненормально
лисп - язык для настоящего искусственного разума, а не для дэбильных нейроноперделок

17 Ноя, 07:39 #20 #877061

>>876928
Могу посоветовать отказаться от garden, довольно тяжелая штука (тормозит), тяжело править стили, т.д.

Ре-фрейм однозначно стоило бы брать, если бы ты не сказал про сервер-сайд. Нет, ре-фрейм можно срендерить на сервере, но довольно костыльно.

А так вроде как Ом легко рендерится на сервере, а функционала много.

Ответы877184

17 Ноя, 09:12 #21 #877075

>>876958
http://quickdocs.org/mgl/
http://melisgl.github.io/mgl-pax-world/mgl-manual.html

17 Ноя, 10:46 #22 #877097

>>876619
>>876928
Так бэк никто на Кложуре не делает в итоге? Только фронто-перделки на нём, никакого серьёзного щита?

Ответы877187877329

17 Ноя, 13:11 #23 #877179

Как обмазаться коммон лиспом? Киньте материалов на русском, пожалуйста.

Ответы877186951666

17 Ноя, 13:19 #24 #877184

>>877061
Ом мне не нравится. Когда гарден должен начать тормозить? Сейчас я сделал так:
1) lein garden once конпелит стили и кладет их в статик файл (для прода)
2) В реагенте я делаю (garden/css style-map)
В результате фигвил это дело вместе с разметкой накатывает и результат приходит через 0.1 секунду в браузер. Зависимость есть, брат жив. Правда стилей пока не много: ~150 строк структура.

Второй вопрос: hoplon щупал?

Ответы877325

17 Ноя, 13:20 #25 #877186

>>877179
http://lisper.ru/pcl/
Можешь изучить CL чтобы было с чем сравнивать, но увы реальный софт на нем писать боль. Уж я то знаю.

Ответы877190877193

17 Ноя, 13:21 #26 #877187

>>877097
http://www.parens-of-the-dead.com/
Вот тут магнарс на кложуре делает сервер сайд.
ПРосто сейчас такое время, когда нужно чтобы код на сервере и клиенте был общим. Поэтому кложурскрипт и тянут на сервер (с нодой)

17 Ноя, 13:24 #27 #877189

Совсем нубский вопрос, в документации чет не найду. Как поставить в lispworks нормальные в таб 4 пробела? Версия 6.1.1

Ответы877508

17 Ноя, 13:25 #28 #877190

>>877186
Спасибо. Через кеш гугла смотреть?

Ответы877199

17 Ноя, 13:29 #29 #877193

>>877186
Кстати, таки интересно было бы узнать твой опыт и твою историю. Почему боль?

Ответы877202

17 Ноя, 13:39 #30 #877199

>>877190
хм, уже работает

17 Ноя, 13:44 #31 #877202

>>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). Да оно просто пиздец как медленно поднимается, но когда поднимется, равных по удобству инструментов я пока не видел.

17 Ноя, 13:44 #31 #877202

>>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). Да оно просто пиздец как медленно поднимается, но когда поднимется, равных по удобству инструментов я пока не видел.

Показать весь текст
Ответы877973887103

17 Ноя, 13:50 #32 #877206

>>876619
>На бэкенде используются golang (первый проект)
Сочувствую. Как земля на вкус после Кложуры?

Ответы877327

17 Ноя, 13:50 #33 #877207

(def turd 42)

(defn fuck [shit]
(* shit turd))

(fuck 2)

Является ли fuck чистой функцией?

Ответы877229

17 Ноя, 14:43 #34 #877229

>>877207
Недостаточно информации.

Ответы877231

17 Ноя, 14:45 #35 #877231

>>877229
Ну раз turd имутабельно, то получается что fuck зависит только от аргумента, а значит оно чистое. Правильно или нет?

Ответы877233

17 Ноя, 14:48 #36 #877233

>>877231
Если set! забанен, то да. Если нет, то зависит.

17 Ноя, 14:49 #37 #877237

Что брать в дополнение к реагенту для работы с сетью? Сейчас смотрю на https://github.com/JulianBirch/cljs-ajax

17 Ноя, 14:53 #38 #877239

Здесь есть лисперы, которым нечем заняться? Может попишете ИИ под мои гениальные метафизические маняидеи?

Ответы877244

17 Ноя, 14:59 #39 #877244

>>877239
Сначала ты кладешь на стол маняидеи, потом мы думаем.

Ответы877245

17 Ноя, 15:00 #40 #877245

>>877244
Прямо здесь?

Ответы877250

17 Ноя, 15:06 #41 #877250

>>877245
А ты чего-то стесняешься?

Ответы877252

17 Ноя, 15:09 #42 #877252

>>877250
Чуток стесняюсь. Суть в когнитивных искажениях, синестезии и особому строению и самоорганизации при импульсных нейронных сетях.

Ответы877255

17 Ноя, 15:15 #43 #877255

>>877252
Тебя что пиздят если ты скажешь больше 10 слов? Пиши нормально.

Ответы877256

17 Ноя, 15:19 #44 #877256

>>877255
Я просто некоторое число..
https://core.ac.uk/download/pdf/6117416.pdf я думаю, что связи между нейронами образуются подобно грибнице.

Ответы877257

17 Ноя, 15:22 #45 #877257

>>877256
Ой все. Иди в хаскель тред.

Ответы877259

17 Ноя, 15:23 #46 #877259

>>877257
Почему?

Ответы877262

17 Ноя, 15:27 #47 #877262

>>877259
Потому что мы не настолько ебанутые.

Ответы877264

17 Ноя, 15:28 #48 #877264

>>877262
Но там меня не примут, я довольно плохо знаю математику.

17 Ноя, 17:18 #49 #877325

>>877184
> garden
ну, у меня garden висел на auto, оперативы мало, из-за этого и тормозил похоже. У меня рядом с boot (вместо lein) висит вебпак, так как нужно компилить зависимости для React, вот он у меня сейчас и занимается стилями, писать на stylus намного удобнее, чем на garden.

> hoplon
нет, но сейчас посмотрел, выглядит круто, нужно попробовать поиспользовать. Там полноценное FRP, можно делать global state, от него зависимости, от него еще зависимости.... и получается re-frame, только без удобного регистра субскриберов и без хэндлеров/интерцептеров, цикла событий. Но если есть сервер-сайд рендер, то можно поверх него сделать свой re-frame.

17 Ноя, 17:20 #50 #877327

>>877206
golang я знаю давно. Пометка про первый проект - это не то, что он первый мой проект, а первый проект из списка кложуровских проектов. Писать на golang мне нравится, лол. Кложа и го - два из четверых моих любимейших языков (на других двух (хачкель и erlang/elixir) я просто ничего реального не писал)

Ответы877337

17 Ноя, 17:25 #51 #877329

>>877097
Ну на кложе много серьёзных проектов, другое дело, что мне серьёзный бэк писать особо не приходилось, простая rest api прослойка между db и клиентом + немножечко логики, это мне проще написать на golang/ruby+sinatra/express. А если нужно что-то крупнее, то я возьму рельсы. Смысла писать бэк на кложе я для себя не вижу. Разве что есть профит передавать между клиентом и сервером edn вместо json (а то на клиенте функции для преобразования "is_active" <-> :active? для каждого запроса туда и обратно).

17 Ноя, 17:36 #52 #877337

>>877327
Просто не укладывается, как может одновременно нравится кложура/хачкиль/эрланг и такой дибиловатый ребёнок с вечной ухмылкой-го

Ответы877361

17 Ноя, 17:50 #53 #877361

>>877337
На го я пишу, когда мне нужно написать что-то очень быстро, за короткий промежуток времени, и что бы это работало. Причем это получается не говнокод, как на пыхе, а что-то нормальное (статическая типизация и простота в разбитии кода на кучу модулей) Я почти не использую горутины сам (хттп-либа сама запускает все хэндлеры в своих горутинах), я просто пишу код, как на питоне. Ничего крупного и серьёзного я писать на го не стану.

Когда же я пишу на хачкеле, я пишу это уже медленнее, постоянно пытаюсь что-то отрефакторить, сделать код еще чище и проще и в итоге много времени сам охуеваю, как же круто все это на фп. (Собственно, мне сложно охуеть от какого-то императивного кода, а вот от функциональных решений я до сих пор охуеваю, как от qsort на хаскеле много лет назад).

Ответы877571

17 Ноя, 20:57 #54 #877508

>>877189
Сомневаюсь, что кто-то здесь пользуется чем-то иным, кроме емакса. Чего и тебе советую.

17 Ноя, 22:35 #55 #877571

>>877361
Горутины кстати охуенная вещь. Вроде как core.async собственно навеян горутинами и каналами? понятно что в начале был CSP

Ответы877626

17 Ноя, 23:49 #56 #877626

>>877571
горутины вещь крутая, я не сомневаюсь, только они не нужны в коде, где идет запрос базу, преобразование в json и отправка ответа
core.async действительно сильно напоминает горутины (хотя бы "go")

Ответы877628

17 Ноя, 23:56 #57 #877628

>>877626
Горутины нужны если у тебя не один запрос в базу, а запрос в базу и три запроса к сторонним сервисам. Тут они с каналами становятся просто незаменимыми.

18 Ноя, 00:06 #58 #877634

Пагни, кто-нибудь щупал овертон?

Ответы877644877980

18 Ноя, 00:23 #59 #877644

>>877634
Вот кстати кто-то сверху спрашивал про CL. Просто сравните овертон с той поделкой что для CL сделана. И сразу все вопросы про дохлое комьюнити отпадут. как же блядская жвм бесит своей тормознутостью на подъеме

18 Ноя, 14:54 #60 #877821

Блядский кложурскрипт заебал крашить емакс.

18 Ноя, 20:09 #61 #877969

>>876619
Реакт нейтив с кложурой использовал?

Ответы878032

18 Ноя, 20:14 #62 #877973

>>877202
Ну вот, а стонов-то с говнокиданием сколько было.

Ответы878021

18 Ноя, 20:19 #63 #877980

>>877634
Я с ним поигрался, пощупал их экземплы, погенерил дабстеп, но не придумал, что лично мне с ним дальше делать и забил.

18 Ноя, 21:17 #64 #878021

>>877973
Я в тебя готов кидаться говном целый день. Этот блядский кусок говна жрет память по 100мб/минута, из-за чего постоянно крашится. Заебало.

Ответы878115

18 Ноя, 21:30 #65 #878032

>>877969
нет, не было причин пока. Но много видел, что люди используют, значит это как минимум не сильно проблемно

18 Ноя, 23:57 #66 #878115

>>878021
Попроси менеджера еще одну планку тебе воткнуть, чего ты.

Ответы878124

19 Ноя, 00:44 #67 #878124

>>878115
Вася, неужели ты не понимаешь, что проблема не в количества памяти, а в том, что это херота течет как второй фурифокс? Почему я могу открыть 300 буферов с жс и го, и емакс даже 2х гигов не отожрет, а немножко жабы убивает машину?

Ответы878161

19 Ноя, 04:41 #68 #878161

>>878124
Не знаю, у меня не убивает. И имакс с 300 буферами у меня отжирает мегабайт сто памяти максимум, кстати. Может у тебя какие-то волшебные мегабайты?

20 Ноя, 19:54 #69 #879094

Кто-нибудь юзал http://arachne-framework.org/ ?
А пьедестал?

Ответы879121

20 Ноя, 19:56 #70 #879099

То есть не юзал, а тыкал. Короче, кто-нибудь их сравнить может?

20 Ноя, 20:15 #71 #879121

>>879094
Куда не тыкни, Coming soon!Coming soon!Coming soon!Coming soon!

21 Ноя, 15:07 #72 #879527

Реквестирую пример проекта реагенте на гитхабе. Не ебучий темплейт, а настоящий живой проект.

Ответы879633

21 Ноя, 17:18 #73 #879633

>>879527
Мне на клжс приходят на ум только два больших опенсурсных проекта: прекурсор и сиркл си ай. Они оба на оме вроде как, так что хз.

21 Ноя, 19:20 #74 #879729

Зачем нужен boot или чем плох lein?

Ответы879772

21 Ноя, 20:15 #75 #879772

>>879729
Двачаю вопрос, кстати.

Как я понял, бут используют те, у кого какие-то сложные деплойные скрипты, и они их хотят писать на кложе, а не на баше, и им нужен доступ к энвайроненту жвм во время сборки, так что нельзя взять кложурно-одный шелл. Но сам я хз, что там за деплой у них такой, что это нужно.

Ответы879876

21 Ноя, 23:14 #76 #879876

>>879772
мне бут нужен только потому, что я заебался писать огромные ебучие конфиги для лейна

Ответы879881

21 Ноя, 23:39 #77 #879881

>>879876
А что для бута при той же функциональности не будет такого же по размерам конфига?

Ответы879935

21 Ноя, 23:40 #78 #879882

Всего с пару дней отсутствовал, а кложуристы уже захватили тред?!

Ответы879888

21 Ноя, 23:49 #79 #879888

>>879882
Незнаю как остальные, а я вынужденный кложурист. Потому что цл умер, а других живых и готовых для прода альтернатив нет. Хоть свою пиши. пополни ряды прочих мертвых лиспов

Ответы879953

80 Кб, 1440x702

22 Ноя, 00:57 #80 #879929

Наше время пришло! Готовьтесь остаться на помойке истории.

Ответы879934894044936075

22 Ноя, 01:05 #81 #879934

>>879929
Лол, "опыт в коммерческих проектах от 5 лет".

22 Ноя, 01:08 #82 #879935

>>879881
нет. Мой бут-файл вообще без конфигов почти (кроме :source)

Ответы879937879954

22 Ноя, 01:09 #83 #879937

>>879935
Объясни тогда, каким образом жырный конфиг лейна прверащается в пустой бут фейл?

Ответы879970

22 Ноя, 02:14 #84 #879953

>>879888
>Потому что цл умер
Ну, мне так не кажется, сообщество таки живо и даже развивается, хоть и медленновато

Ответы880073

22 Ноя, 02:14 #85 #879954

>>879935
Да, и мне объясни. Темплейты и плагины для лейна работают с бутом, кстати? Бут нью фигвил пашет?

Ответы879970

110 Кб, 914x753

22 Ноя, 03:48 #86 #879970

>>879954
>>879937
да че там объяснять, огромные сложночитаемые (и сложноредактируемые без паринфера) конфиги профилей заменяются на простой читабельный код
https://gist.github.com/anonymous/c26bfe1dc7e37d20c246d6f975f993f5
Конфиги таки есть, но это не такая ебанина, как на моем прошлом проекте на лейне (пикрелейтед), многое норм по дефолту

Про шаблоны не знаю, бутом пользуюсь только первый проект, писал все с нуля.

Ответы879974

22 Ноя, 04:00 #87 #879974

>>879970
Эм... Так ты же просто выкинул гарден и фигвил, не? Если из лейна их выкинуть, то там тоже будет малобуков, лол. Или я чего-то не понял?

Ответы879978

22 Ноя, 04:32 #88 #879978

>>879974
там используется reload, который вроде как заменяет фигвел (такие же панели с ошибками, такой же хотрелоад, только репла нет).

Кроме того, если бы я вставил в бут garden, он бы все равно вышел короче из-за возможности использовать
а) дефы, функции
б) определять параметры по умолчанию. В лейне, как видишь, некоторые параметры дублировались для разных "профилей". Может, это можно было как-то сделать в лейне, но мне лень разбираться с форматом этих конфигов.
в) как я уже писал выше, многие параметры в boot указаны по дефолту в удобных значениях.

Я тот человек, который между кодом и конфигом выберет код, не переношу огромные json/xml/yaml конфиги, где можно настроить все на свете.

Ответы880399

22 Ноя, 07:01 #89 #880006

Япошки емакс на общелиспе запилили, уже вполне юзабельно, хоть и рисует пока только через ncurses
https://github.com/cxxxr/lem

Ответы880074

22 Ноя, 11:50 #90 #880073

>>879953
Не просто медленновато, оно просто в конвульсиях.
Да и сам язык, увы, пригоден конкурировать только с сишкой до 89 года. А если начать к нему прикручивать батарейки уровня CL21, то начнется адовая фрагментация. В общем увы и ах.

22 Ноя, 11:53 #91 #880074

>>880006
Не нужно.

Ответы880087

22 Ноя, 12:13 #92 #880087

>>880074
Если они ставят себе целью совместимость с емаксом, то очень даже нужно.

Ответы880099880106

22 Ноя, 12:36 #93 #880099

>>880087
Лол, в чем смысл? Писать ядро редактора на тормозном цл вместо ультрабыстрой сишки?
А емакс без тонны код на елиспе никому не нужен.

Ответы880106

22 Ноя, 12:52 #94 #880106

>>880099
Смысл в компилируемости расширений в машинный код, очевидно.
>А емакс без тонны код на елиспе никому не нужен.
Поэтому я и говорю >>880087
>Если они ставят себе целью совместимость с емаксом
Благо, елисп не так сильно отличается от общелиспа, и запилить слой совместимости вполне реально (я даже видел где-то в сети). Тем более, что елисп в последнее время мимикрирует под цл.

Ответы880109880402

22 Ноя, 12:57 #95 #880109

>>880106
Лучше бы многопоточность помогли запилить, чем делать очередное ненужно.

А на счет "не так сильно отличается", ты походу елисп последний раз видел лет 10 назад.

Ответы880113

22 Ноя, 13:02 #96 #880113

>>880109
Думаю, им лучше знать, что им лучше делать.
>А на счет "не так сильно отличается", ты походу елисп последний раз видел лет 10 назад.
Последние 10 лет он только и делал, что потихоньку превращался в цл.

22 Ноя, 20:29 #97 #880399

>>879978
Ну в лейне тоже можно объявлять биндинги и расшаривать куски конфига в разные места. Но вообще я тебя понял, это скорее вопрос личного предпочтения. Мне вот наоборот приятнее работать пусть с многословным, но представленным в виде данных билд-конфигом.

22 Ноя, 20:30 #98 #880402

>>880106
Хотели же (уже лет ндцать как) чхему впилить в имакс. Вощ и ныне там. А эти ребята взяли и запилил то же, но с кл?

Ответы880688

23 Ноя, 08:18 #99 #880688

>>880402
>Хотели же (уже лет ндцать как) чхему впилить в имакс.
Впиливали же guile вроде.
>А эти ребята взяли и запилил то же, но с кл?
Нет, они переписали с нуля.

Ответы880831

23 Ноя, 14:35 #100 #880831

>>880688
Впиливали, да чет не впилили как-то, не? По-крайней мере я ни одного пакета на нем не видел.

24 Ноя, 12:58 #101 #881424

Что джава животворящая с людьми делает...
По совету сектанта итт попросил у менеджера еще одну плашку. Место под плашки в ноуте кончилось.

Ответы881685

24 Ноя, 22:40 #102 #881685

>>881424
И как? Теперь хватает? Или ещё ону просить будешь?

Ответы881712

24 Ноя, 23:38 #103 #881712

>>881685
Говорю же, ноут. Нет там больше места под плашки. Теперь памяти хватает, но емакс все равно рандомно крашится от злоеубучего кложурсрипта. Плюс когда нрепл активен smex начинает тормозить. Какие-то буферы кложи при сохранении на 2 секунды виснут. Короче не так хуево как ванильный жс, но все равно плохо.

Ответы883166

27 Ноя, 18:41 #104 #883166

>>881712
Бро, почини имакс. Ты мамой клянешься, что он у тебя крашится? Я буквально пару раз в жизни видел, как крашится имакс, причем один раз это был какой-то баг, который пофиксили в следующей же версии. У тебя точно весь имакс крашится? Это пиздец же.

Алсо, у тебя стабильные версии всего тулинга стоят, да?

Ответы883213

27 Ноя, 20:04 #105 #883213

>>883166
Почему как только кложура поселилась в емаксе, он начал крашится? Крашится от слова закрываться нахуй мгновенно, проебывая все на свете. Крашится и тормозить.

Ответы883218883791

27 Ноя, 20:12 #106 #883218

>>883213
Я не знаю, не видел кроме тебя никого, у кого крашится имакс. Версии-то у тебя стабильные и одни и те же у всех пакетов имакса и плугинов лейна?

Ответы883590

28 Ноя, 01:44 #107 #883416

Делаю простенькую задачку на лиспе с использованием вижуал лиспа. Сам интерфейс получился легко, а вот запрограммировать кнопки начинаются проблемы. Сейчас не могу вывести значения набор чисел из тхт файла в эдитбокс, пишет неверный тип аргумента file nil. Вот сейчас упёрся рогом и дальше не могу, помогите разобраться как это сделать.
В программировании мало чего понимаю, разбираюсь почти с нуля, но инфы по лиспу очень мало в интернетах

Ответы883453883457

28 Ноя, 04:17 #108 #883453

>>883416
> вижуал лисп
Што ета?

Ответы883459

28 Ноя, 04:33 #109 #883457

>>883416
Немного разобрался, read-line теперь выводит мои числа из файла в консоли верно. Теперь как их перекинуть в edit_box, чтобы они там отображались?

Ответы883503

262 Кб, 820x608

28 Ноя, 04:49 #110 #883459

>>883453
Диалоговые окна в нём делаю, а уже саму начинку в лиспе пишу.

28 Ноя, 09:46 #111 #883503

>>883457
Ты код-то хотя бы покажи.

Ответы883547

28 Ноя, 12:18 #112 #883547

>>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. В консоли у меня отображает нужный мне ряд чисел, я просто не знаю как его вывести в нужном мне боксе.

Ответы883903

28 Ноя, 13:44 #113 #883590

>>883218
Стабильные. Одно и тоже на двух разных машинах. Конечно проблема в емаксе, во мне и даже в аллахе, а не в кложуре.

Ответы883721

28 Ноя, 17:56 #114 #883721

>>883590
Ну в кложуре проблема быть никак не может, лол, - кложура крашит имакс? Что-то из разряда марсианских жидомасонов, срущих в подъездах. А вот в сидере - вполне, хотя все равно странновато, что весь имакс крашится. А что разрабы сказали?

Ответы883780

28 Ноя, 19:20 #115 #883780

>>883721
Крашится оно только когда подцеплен фигвил. Чтобы говорить с разрабами надо им что-то показать. А показывать нечего, потому что даже стек трейс не поймать без танцев с бубном.

Ответы883827884095

28 Ноя, 19:52 #116 #883791

>>883213
В емакс ффи завезли что ли?
Ну все теперь.

28 Ноя, 20:48 #117 #883827

>>883780
Ссссуууууука

Fatal error 11: Segmentation fault[1] 15524 abort (core dumped) emacs
emacs 72.48s user 2.74s system 4% cpu 28:20.22 total

Ответы883880884095

28 Ноя, 22:08 #118 #883880

>>883827
> ulimit -c unlimited
> Fatal error 7: Bus error[1] 29185 segmentation fault (core dumped) emacs
Охуенно просто. Охуитетельно.

28 Ноя, 22:38 #119 #883902

Не хочет работать цикл

while (/= elem nil)

Если nil заменить на какое-нибудь существующее, то цикл правильно работает и останавливается на указанном элементе. Походу цикл повторяется второй раз и в конце всегда выдаёт ошибку "неверный тип аргумента: stringp nil". Пробовал заменять на null и на length 0, один хер та же самая ошибка.

Ответы883906

28 Ноя, 22:39 #120 #883903

>>883547
Ну, за этим в документацию, мне, как и, наверное, всем остальным ИТТ, на автолиспе писать не приходилось, поэтому таких мелочей не знаю. Должен быть какой-то метод у edit_box вроде setvalue.

Ответы883907

28 Ноя, 22:41 #121 #883906

>>883902
Попробуй просто while elem

Ответы883911

28 Ноя, 22:41 #122 #883907

>>883903
Спасибо, уже разобрался. Я пишу наверное чуточку быстрее полторы строки в день чем тут читают. Вот сейчас с циклом затык, даже нашёл пример аналогичный, но у меня всё равно не хочет работать.

28 Ноя, 22:48 #123 #883911

>>883906
Структура нарушается. Вот смотри, если я напишу
(while (/= elem 1))
То у меня будет считывать строку за строкой из файла, пока не наткнётся на 1, тогда цикл завершится. В моём случае мне нужно считывать строки до конца файла, т.е. пока элемент не будет равен пустом месту. В теории всё хорошо, я даже нашёл пример http://aco.ifmo.ru/~nadinet/html/lectures/lsp_2.html#_size где делают абсолютно также. Но тем не менее где то ошибка в цикле, и он запускается второй раз после прогона всего файла и выбивает ошибку.

Ответы883912

28 Ноя, 22:58 #124 #883912

>>883911
Ты таки попробуй, потому что в общелиспе /= предназначен только для сравнения чисел.
>/= elem 1
Строка сравнивается с числом? Хм, автолисп слаботипизированный что ли?

Ответы883931

28 Ноя, 23:23 #125 #883931

>>883912
Уже и в этом разобрался, подстрокой считывал дальше после окончания и цикл накрывался. Короче проблема внутри самого цикла была, а не в самом while.

Ответы883933

42 Кб, 578x559

28 Ноя, 23:25 #126 #883933

>>883931
И (/= elem nil) работает? Странно, потому что в документации пишут, что он только для численных сравнений.

Ответы883948884088

28 Ноя, 23:35 #127 #883948

>>883933
В моём учебнике допускается
>Проверяет неравенство аргументов (рекомендуется использовать для чисел или строк).
>(/= <аргумент1> [<аргумент2> ... [<apryMeHTN>]...])
>Типы аргументов: любые.

29 Ноя, 08:54 #128 #884088

>>883933
> numstr
Что, и вправду слаботипизированный? Жесть.

29 Ноя, 09:18 #129 #884095

>>883780
>>883827
Ну что, нашел, в чем проблема? Если у тебя действительно последние стабильные версии имакса и всего сидер-релейтеда, то пиши им и без стектрейса. На чем крашится-то, на каком-то конкретном вводе в репл? Или вообще рандомно? На пустом проекте или только на рабочем? На обоих машинах енвайронмент один и тот же? Любопытно же :3

Ответы884103

29 Ноя, 09:35 #130 #884103

>>884095
Вообще рандомно, перед этим начиная заметно визуально подтормаживать на сохранении/эвале кложурскриптовых файлов. Только на рабочем коннекте через фигвил. Энвайронмент ясен хуй не может быть 100% одинаковым, но дистр одинаковый, значит версии софта плюс минус одни и те же.

А хуле толку писать о сегфолте вообще без данных для выяснения причин. Без стека нет смысла.

Ответы884210884516

29 Ноя, 14:39 #131 #884210

>>884103
Под gdb емакс запусти

Ответы884212

29 Ноя, 14:44 #132 #884212

>>884210
Нет ты.

Ответы884214

29 Ноя, 14:53 #133 #884214

>>884212
Нет ты. У меня-то не падает.

29 Ноя, 22:07 #134 #884516

>>884103
А что за дистр, арч небось, лол?

Да не, напиши все равно, чтобы был репорт. А то я вот сейчас посмотрел их иссуи, вроде ничего похожего нет, и если у кого-то еще что-то похожее, то он тоже ничего не найдет и подумает, что ну его нахуй, и в итоге никто так и не пофиксит проблему, если она все-таки есть.

Алсо, я бы попробовал на другой версии имакса воспроизвести, если не лень. Ну и без загрузки конфига. И на пустом проекте.

Ответы884890

30 Ноя, 13:19 #135 #884890

>>884516
Арч. Поймаю трейс, сделаю репорт.

30 Ноя, 16:51 #136 #885087

Пытаюсь тут подсадить человека на кложурскрипт. Но бля, поставить его на винде это какое-то мучение. Есть годные мануалы, которые можно дать человеку, который не умеет конпелить исходники линукса?

Ответы885151

30 Ноя, 18:12 #137 #885151

>>885087
Винда - это вообще сплошное мучение как бы. Вроде же расписано все на сайте у них. Загугли "lein windows", профит. Из редакторов попробуй курсив или лайттейбл, например. Хотя раз только кложурскрипт, то пусть хоть в нотепад.ехе пишет, фигвил же.

30 Ноя, 22:45 #138 #885290

Поясните кто за emacs на windows. Установил geiser с помощью melpa, как я понял достаточно вызвать install-package и все установится, лишних действий типо качать что-то еще делать не надо. Вызываю run-guile, пишет apply: Searching for program: No such file or directory, guile.exe. Guile Load Path пустой в настройках. Что я делаю не так?

Ответы885293

30 Ноя, 22:49 #139 #885293

>>885290
Имакс не интепретатор схемы. Тебе нужно установить guile на саму винду.

Ответы885295

30 Ноя, 22:52 #140 #885295

>>885293
Почему тогда написано в мануале что достаточно пакет установить?
>The easy and quick way
http://www.nongnu.org/geiser/geiser_2.html#Installation

Ответы885296885378

30 Ноя, 22:56 #141 #885296

>>885295
Простой способ установить пакет в сам емакс. Без git clone и ручной установки.

01 Дек, 01:32 #142 #885378

>>885295
Потому что для того, чтобы был гейзер, достаточно установить гейзер. Гейзер - это не гуайл. Гейзер - плугин для редактора, а гуайл - конпелятор\интерпретатор схемы.

02 Дек, 16:54 #143 #886408

https://github.com/arohner/spectrum - охуеть!

Ответы886502

02 Дек, 20:32 #144 #886502

>>886408
И правда охуеть! В кложуру завезли то, что в общелиспе из коробки уж лет с двадцать

Ответы886503886529886697

02 Дек, 20:34 #145 #886503

>>886502
20 лет как ненужно.

02 Дек, 21:09 #146 #886529

>>886502
В лиспе такой хуйни быть не может.

Ответы886541

02 Дек, 21:22 #147 #886541

>>886529
Запрещаешь?

Ответы886544

02 Дек, 21:25 #148 #886544

>>886541
Здравый смысл запрещает, а я констатирую.

Ответы886553

02 Дек, 21:39 #149 #886553

>>886544
В любом случае, уже поздно выпиливать.
А смысл свой доктору покажи, уж что-то я сомневаюсь в его здравости.

Ответы886563

02 Дек, 21:54 #150 #886563

>>886553
Чего поздно выпиливать? Ну-ка ну-ка поржем.

Ответы886567

02 Дек, 22:06 #151 #886567

>>886563
Наверное то, о чем мы говорили, нет? Ты лучше вернись в свою палату, поржи, а потом, как будешь в более вменяемом состоянии, возвращайся.

Ответы886572

02 Дек, 22:13 #152 #886572

>>886567
У меня сложилось впечатление будто ты утверждаешь, что такая бессмысленная хуйня как "отлов чего-то там в компайл-тайме" не только не является бессмысленной хуйней, но ещё и существует в самом лиспе. Я ведь не ошибаюсь?

Ответы886585

02 Дек, 22:35 #153 #886585

>>886572
>Я ведь не ошибаюсь?
Частично. 1) не бессмысленная 2) отчетливый "компайлтайм" есть не во всех лиспах.
Ну а вообще удивительно, что кто-то в лиспотреде об этом не знает. Может, ты ещё и про вывод типов в общелиспе не слышал?

Ответы886588

02 Дек, 22:38 #154 #886588

>>886585
Рассказывай где ты в лиспе видел аналог этой кложурской бессмысленной хуйни.
Про вывод типов потом уж как-нибудь.

Ответы886599

33 Кб, 509x397

02 Дек, 22:47 #155 #886599

>>886588
Ну на

Ответы886602886606

02 Дек, 22:50 #156 #886602

>>886599
И что это у нас? Ты не стесняйся, рассказывай.

Ответы886604

02 Дек, 22:51 #157 #886604

>>886602
Похоже на проверку корректности кода во время компиляции, разве нет?

Ответы886607

02 Дек, 22:52 #158 #886606

>>886599
http://clojure.org/about/spec

Ответы886612

02 Дек, 22:54 #159 #886607

>>886604
Вообще не похоже. Похоже, что ты ни шиша не понимаешь.
И вообще, судя по таким словам как "проверка корректности", ты гнойный статикодебил.

Ответы886609

02 Дек, 22:57 #160 #886609

>>886607
Твоё отношение к тем кто не разделяет твои вгзляды показательно. Даже незнаю кто хуже, ты или гитлер.

Ответы886610

02 Дек, 23:02 #161 #886610

>>886609
Какие еще мои взгляды, ты о чем?
Или ты думаешь, что тут кто-то кроме тебя не знает, что "Compilation failed" пишется, когда при компиляции были варнинги, кроме стайл-варнингов? Что код этот прекрасно скомпилировался и прекрасно работает точно так как написан? Что он "корректен" в любом смысле этого бессмысленного слова?
Давай показывай нормальный аналог той хуйни. (Подсказка: его нет и не может быть)

Ответы886620

02 Дек, 23:04 #162 #886612

>>886606
Типы в общелиспе так тоже умеют. Но только они полноценная часть языка, а не сбоку прикрученный костыль.

Ответы886615

02 Дек, 23:09 #163 #886615

>>886612
Это все прекрасно. Сам общелисп только мертв и неюзабелен уже. Увы.

02 Дек, 23:24 #164 #886620

>>886610
>и прекрасно работает точно так как написан
Вообще-то нет. Дизассемблируй функцию и увидишь, что ничего, кроме кода выброса ошибки, там нет.
>Давай показывай нормальный аналог той хуйни.
Ну покопай гитхаб, там полно неработающего говна.
Проверка типов - вполне себе "нормальный аналог", единственное, что в компилятор вшито и апи не предоставляет

Ответы886622

02 Дек, 23:30 #165 #886622

>>886620
> Вообще-то нет.
Вообще-то да. Но если хочеть еще позора, можешь обосновать свое замечательное мнение, не такое как у других.
> Дизассемблируй функцию и увидишь, что ничего, кроме кода выброса ошибки, там нет.
Что ты несешь? Там check-type должен быть еще.
> Проверка типов
Где, какая "проверка типов"? Рассказывай, показывай.
> единственное, что в компилятор вшито и апи не предоставляет
Ну еще бы, какое может быть апи у того чего нет и быть не может.

Ответы886633

02 Дек, 23:44 #166 #886633

>>886622
>Там check-type должен быть еще.
Я имел в виду, что форма, не прошедшая проверку типов, заменена кодом выброса ошибки.
> какая "проверка типов"?
Которая не дает складывать попугаев с питонами, очевидно.

Ответы886637

02 Дек, 23:53 #167 #886637

>>886633
> Я имел в виду, что форма, не прошедшая проверку типов, заменена кодом выброса ошибки.
Во-первых, никакой "проверки типов" там нет. А во-вторых, это самое банальное удаление мертвого кода. Функция "умножить", если какие-нибудь из аргументов не являются числами, сигналит ошибку. В данном случае заведомо известно, что второй аргумент не число, поэтому этот вызов и заменили на сигнал ошибки. Это общая оптимизация, никакого отношения к типам она не имеет.
> Которая не дает складывать попугаев с питонами, очевидно.
Чего блядь?

Ответы886647

39 Кб, 478x440

03 Дек, 00:26 #168 #886647

>>886637
Здесь по-твоему тоже типы не проверяются?

Ответы886649

03 Дек, 00:29 #169 #886649

>>886647
По-моему нет.
Но я пока еще не знаю что ты подразумеваешь под "типов проверянием".

Ответы886652

03 Дек, 00:36 #170 #886652

>>886649
Ну как знаешь.

Ответы886653

03 Дек, 00:39 #171 #886653

>>886652
Ну вот и хорошо.

03 Дек, 01:49 #172 #886697

>>886502
По-моему ты что-то путаешь. Что именно из кл ты имел в виду?

03 Дек, 01:52 #173 #886699

Алсо, ерлангертипохейтер, ето ти тут насрал в итт треде?

Ответы886768

03 Дек, 07:51 #174 #886768

>>886699
Нет, это я насрал.

03 Дек, 18:35 #175 #887103

>>877202
Не хочешь пообсуждать 3,4,5,...,11D-рендеринг и его практическую реализацию на CL? У меня есть интересная, как мне кажется, идея, но одному мотивации нехватает.

Ответы887123887140

03 Дек, 19:16 #176 #887123

>>887103
https://github.com/TatriX/cl-gl-tutorials
Нет, спасибо. Я лучше на растекрестах буду этим заниматься, чем на CL.

Ответы887134

03 Дек, 19:36 #177 #887134

>>887123
А чего не CEPL? Мне уже начинает казаться, что ты специально выбираешь неотлаженные и вообще недописанные библиотеки, лишь бы оклеветать общелисп и перетянуть потенциальных лисперов на кложу

Ответы887142

03 Дек, 19:41 #178 #887140

>>887103
Поведай, в чем суть идеи

Ответы887406

03 Дек, 19:41 #179 #887142

>>887134
CEPL не завелся. Да и мне нужен был ванильный биндинг.

Ответы887150

03 Дек, 19:59 #180 #887150

>>887142
Ну допустим. Но зачем ты пердолил указатели напрямую через cffi, ковыряя внутренности cl-opengl?
https://github.com/TatriX/cl-gl-tutorials/blob/master/06/translation.lisp#L188

Ответы887155

03 Дек, 20:07 #181 #887155

>>887150
Если ты читал ридми, то там написано, что это адаптация кода из книжки. Нужно было, вот и пердолил.
Вообще конечно, боль и страдание. Не рекомендую.

Ответы887173

03 Дек, 20:25 #182 #887173

>>887155
>Вообще конечно, боль и страдание. Не рекомендую.
Но ты сам же себе эти страдания и обеспечил. Есть же в том же cl-opengl нормальные обертки, нет, буду голые биндинги дёргать.

Ответы887174

03 Дек, 20:27 #183 #887174

>>887173
Это говорит лишь о том, что обертка хуевая, но благодоря тому, что CL позволяет положить хуй на инкапсуляцию, я смог дернуть приватные методы и сделать что мне нужно было.

Ответы887182

03 Дек, 20:42 #184 #887182

>>887174
Пакет %gl предоставляет низкоуровневые биндиги, на что какбэ имя пакета и намекает, зачем ты в него полез - для меня вопрос.
>Это говорит лишь о том, что обертка хуевая
Это говорит лишь о том, что ты ССЗБ, который не читает документацию и лезет без повода в низкоуровневые интерфейсы. И инкапсуляция тут совершенно не при чем. Даже удивительно, что ты не догадался до прямого cffi:foreign-funcall.

Ответы887184

03 Дек, 20:47 #185 #887184

>>887182
Лол. Документация. Не смеши мои тапочки. Почти у всего чем я пытался пользоватся на CL либо вообще нет документации, либо она настолько хуевая, что лучше бы не было. Начиная с гиперспека.

Ответы887197887207

03 Дек, 21:04 #186 #887197

>>887184
Гиперспек, конечно, выглядит стремновато, но он не так уж и плох, особенно если сравнивать с каким-нибудь доксигеном.

Ответы887211

03 Дек, 21:14 #187 #887207

>>887184
А так да, с документацией библиотек не так всё радужно.

03 Дек, 21:17 #188 #887211

>>887197
Документация на format это адский ебаный пиздец. Проще в PCL сходить, чем найти нужную директиву в гиперспеке.

Ответы887222

03 Дек, 21:27 #189 #887222

>>887211
Не такой уж и пиздец. Но вообще да, было удобнее, если бы все директивы описывались на одной странице.

03 Дек, 23:09 #190 #887285

Как осилить модульное программирование в лисп и как он там вообще? Дайте ссылок.

Что на счет gui? Хочется кроссплатформенно, конечно

Ответы887392

04 Дек, 02:39 #191 #887392

>>887285
В каком именно лиспе? Берешь и осиливаешь, точно так же, как в любом другом языке. В чем конкретно вопрос?

Насчет гуи - есть гтк\свт\свингпростихоспати\хтмл+цсс\реакт\реакт нейтив для андройда и айфона\биндинги к андройд сдк\хуйзнаетчтоеще, короче - все есть, конкретизируй вопрос.

Ответы887456

04 Дек, 03:39 #192 #887406

>>887140
Лучше завершу некоторые дела, потом запилю демку и вброшу сюда, а то объяснять текстом долго и лень.

04 Дек, 11:27 #193 #887456

>>887392
Я о коммон лиспе, конечно же.

Нет какой-то либы для всех платформ, дабы абстрагироваться?

Ответы887500888068888094

04 Дек, 13:04 #194 #887500

>>887456
Конечно есть. Называется кложур.

Ответы888068888094

04 Дек, 13:04 #195 #887501

Почему в емаксе так неудобно редактировать код? Я поставил lispbox

Ответы887532888068

04 Дек, 13:33 #196 #887532

>>887501
Если ты поставил ванильный емакс, а до этого пользовался только блокнотом, то конечно неудобно.
Емакс как музыкальный инструмент, сначала ты его осваиваешь, а только потом можешь издавать прекрасные звуки.

04 Дек, 23:21 #197 #888068

>>887456
-> >>887500 вот этот базарит

С кл тебе претти мач придется юзать гтк, не припомню там других живых оберток. Может меня кто-то поправит.

>>887501
> lispbox
Боже мой, где ты это говно мамонта откопал? Юзай https://github.com/syl20bnr/spacemacs - ну или имакс прелюд, например.

Вообще, судя по твоим постам ты, мм, новичок в программировании. В таком случае начинать с коммон лиспа - это очень странный и неудачный выбор. Есть plt racket, он специально сделандля изучающих кодинг, там сразу и редактор с ide, и гуй-библиотека, короче - абсолютно все в одном месте и из коробки, скачиваешь один исполняемый файл и все.

Ответы888094

04 Дек, 23:52 #198 #888094

>>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кложурист.

Ответы888101

05 Дек, 00:03 #199 #888101

>>888094
Ну можно на ноде, а не на жаве.

Ответы888104

05 Дек, 00:09 #200 #888104

>>888101
Ну можно-то оно что угодно, хоть на mcclim'е педалить да x-сервер с собой таскать. Но только нужно ли?

Ответы888108

05 Дек, 00:11 #201 #888108

>>888104
Это вопрос философский. А вот то, что люди так делают - ето факт.

05 Дек, 17:06 #202 #888528

>>888485
Ваше мнение очень важно для нас. Держите нас в курсе.

05 Дек, 20:28 #203 #888709

>>888485
У меня дежавю или эта ссылка уже ранее фигурировала здесь?

Ответы888710

05 Дек, 20:29 #204 #888710

>>888709
Была в прошлом треде кажется. Хватит тут рекламировать свою залупу.

06 Дек, 15:29 #205 #889205

Анон, подскажи пожалуйста: нужно написать функцию которая на вход принимает список пар [(Int, Int)], а возвращает список пар сгруппированных по первому значению [(Int, [Int])].

Tо есть если на входе [(0,1), (0,2), (1,3), (1,4)] вернуть она должна [(0,[1,2]), (1,[3,4])]

haskell треда не нашел, но мне главное принцип, а код сам напишу

Ответы889251889256

36 Кб, 536x290

14 Кб, 305x171

06 Дек, 17:09 #206 #889251

>>889205
https://gist.github.com/anonymous/55538d787adf8d9c2f1bf25dcff6442b
возможно есть более красивое решение.
Второй пример на эликсире, там group_by принимает опциональный параметр mapper, который и делает все красиво

Ответы889556

15 Кб, 360x155

06 Дек, 17:20 #207 #889256

>>889205
ну и на кложе

А если использовать plumbing, то чисто теоретически можно и так
(grouped-map first second ['(0, 1), '(0, 2), '(1, 3), '(1, 4)])

Ответы889415889556890652

06 Дек, 20:51 #208 #889415

>>889256
Не могу избавиться от чувства, что у тебя сломана подсветка.

Ответы889478889483

06 Дек, 21:57 #209 #889478

>>889415
ты про abs? Все таки не ide, подсветка не такая умная, чтобы различать builtin функции и переменные. Я обычно просто не использую такие идентификаторы, но сейчас было лень придумывать

06 Дек, 21:58 #210 #889483

>>889415
а если ты про то, что закрывающие скобки серые, то это из-за parinfer. Сервые скобки почти не видны и чисто психологически проще использовать паринфер
https://shaunlebron.github.io/parinfer/

Ответы889536889660

06 Дек, 23:37 #211 #889536

>>889483
Не очень понял, оно чем-то отличается от smartparens? Ну кроме ебанутой подсветки.

Ответы889545

06 Дек, 23:42 #212 #889539

https://github.com/burtonsamograd/emacs-jit
Кто-нибудь пробовал?

Ответы889554

06 Дек, 23:53 #213 #889545

>>889536
а я где-нибудь сравнивал с smartparens? Есть еще несколько аналогов, че ты их не перечислил?
Разница в том, что smartparens для emacs, а parinfer для практически всех современных редакторов.
Фичв с затемненными скобками сугубо опциональна - кому не нравится, может отключить. Но она все таки помогает психологически не лезть удалять лишние скобки, а просто уменьшить отступ.

Ответы889569889598

07 Дек, 00:05 #214 #889554

>>889539
>пробовал?
зачем? героин больше вставляет

07 Дек, 00:07 #215 #889556

>>889251
>>889256
Спасибо большое!

07 Дек, 00:24 #216 #889569

>>889545
Сравни со смартпаренс. Че лучше?

Ответы889661

07 Дек, 01:24 #217 #889598

>>889545
ну по гитхабу смартпаренс мне больше нравится. Паринфер исключительно для лиспов, смартпаренс судя по всему работает с любыми вложенностями. Сравнить иначе не могу, имаксом не пользовался ни разу.

Ответы889599

07 Дек, 01:26 #218 #889599

>>889598
Смартпаренс нужно как следует допиливать, потому что из коробки оно нормально работает только с лиспом. Но все крутилки там есть. А в чем ты там лисп то пишешь?

Ответы889601

07 Дек, 01:29 #219 #889601

>>889599
атом это чистый + паринфер. Хочется перейти на имакс из-за сидра, но боюсь мой комп с 4-мя гигами оперативы, постоянно работающими рельсами, хромом и бутом/лейном, не потянет интерактивную разработку

Ответы889615889641889654

07 Дек, 02:11 #220 #889615

>>889601
Лол, это точно. 10 гигов сжирает в лет это ваша жвм.

07 Дек, 03:41 #221 #889641

>>889601
Emacs-nox не так уж много ест.

Ответы889765

07 Дек, 06:44 #222 #889654

>>889601
Eight
Megabytes
And
Constant
Swapping

07 Дек, 07:21 #223 #889660

>>889483
Про скобки, да. Ненавижу незакрытые скобки. От кода на картинке у меня учащается сердцебиение и появляется мерзкое чувство тревоги.

07 Дек, 07:22 #224 #889661

>>889569
Паредит.

КО

Ответы889765

07 Дек, 12:45 #225 #889765

>>889641
Память жрет не емакс, а жвм.
>>889661
Чего может паредит, чего не может смартпаренс?

Ответы889768

07 Дек, 12:51 #226 #889768

>>889765
Если честно - я не юзал смартпаренс, это какая-то новая штука, а паредит был всегда. Он умеет делать структурные переносы на уровень вверх и вниз? Я даже хз, как это словами объяснить, погугли демку на ютубе если что.

Ответы889803

07 Дек, 13:54 #227 #889803

>>889768
Я как раз наоборот, юзал только смартпаренс. Потому что когда нужно было выбирать, я сравнил их, и получилось так, что смартпаренс умеет все что умеет паредит и еще сверху всякого. У него даже есть готовый сетап, типа включи-ка мне биндинги ка у паредита.

Ответы890290

08 Дек, 05:11 #228 #890290

>>889803
Еще и сверху всякого?! Ок, мне даже представить сложно, пойду сам тогда погуглю.

08 Дек, 19:41 #229 #890652

>>889256
а что за плагин, который стрелочки заменяет?

Ответы890793890808

08 Дек, 22:47 #230 #890793

>>890652
http://emacsredux.com/blog/2014/08/25/a-peek-at-emacs-24-dot-4-prettify-symbols-mode/

08 Дек, 23:14 #231 #890808

>>890652
в моем случае (автор скрина) это просто шрифт с лигатурами - https://github.com/tonsky/FiraCode

Ответы890815

08 Дек, 23:24 #232 #890815

>>890808
Как по мне выглядит это отвратительно.

Ответы890851

09 Дек, 00:09 #233 #890851

>>890815
ну так не используй, никто же не заставляет) Мнение анонов тут интересно меньше всего

Ответы890854

09 Дек, 00:13 #234 #890854

>>890851
А что тут еще кроме мнений есть-то? Ради знаний есть книжки, ютубы и всякие стек оверфлоу. А тут просто говном покидаться, да личное мнение посмотреть.

09 Дек, 18:21 #235 #891206

https://cemerick.com/2016/12/07/rip-anthony-grimes/

Пацаны, raynes умер. Пиздец какой-то, ничего не понимаю. Он же на год младше меня был. Не сказать, что мы с ним прям особо общались, но блин. Помню, как он меня в ирц троллил, лол. И как он после того, как кложурное комьюнити собрало ему бабла на билет до конференции, писал в блоге о том, что мол йееееей, меня настоящая живая женщина обняла, лол. Он тогда еще пиздец каким жирдяем был. И еще как я чуть не проебал на его пастебине все свои пасты, когда юристы из-за спамеров заставили его вырубить, хех. Странное ощущение - вроде я его и не знал даже, но как-то мне хуево.

Ответы891346

09 Дек, 21:37 #236 #891346

>>891206
Да не переживай ты так, в конце-концов он всего лишь кложурист

514 Кб, 800x1132

10 Дек, 14:32 #237 #891657

http://pastebin.com/zyHjPVeS

что я не так делаю? for - проход по списку с выполнение кода и проброс аргументов - вроде работает, но если проход в проходе делаю - шлёт нахуй. и да, наверно это как дерьмо выглядит, но мне хочется так, чисто из академического интереса. вкатываться начал позавчера и да, это emacs lisp.

10 Дек, 15:51 #238 #891726

путём раскрытия вроде понял, нельзя через eval вызывать функции из, чтоль, cl-labels.

10 Дек, 16:00 #239 #891734

да всё. на глобальную переписал - заработало. cl-labels перекрываются может, или чё - впадлу читать, я тут говна навернул из 70 пол книги - хватило, до сих пор кал из зубов выковыриваю.

10 Дек, 16:26 #240 #891757

Почему mocl стоит так дорого? Нет ли каких-то начальных поделок студентов, которые можно доработать вместо этого дорогого?

Ответы891817892168

10 Дек, 16:56 #241 #891781

http://rgho.st/8LfsYx5LT залил Анси Коммон Лисп от Пола Грэма

Ответы891990

10 Дек, 17:27 #242 #891817

>>891757
Где ж дорого, совсем и не дорого.

Ответы891829

10 Дек, 17:47 #243 #891829

>>891817
Тыща баксов же, не?

Ответы891834

10 Дек, 17:58 #244 #891834

>>891829
Двести

10 Дек, 20:52 #245 #891977

https://www.quicklisp.org/ это типа пакетный менеджер для лиспа? И им пользуются нормальные пацаны или нет?

Ответы892092

10 Дек, 20:59 #246 #891990

>>891781
Зачем вы это делаете? Нельзя просто ссылку на gen.lib.rus.ec дать?

10 Дек, 23:23 #247 #892092

>>891977
Пользуются. Просто нормальных посонов пользующихся общелиспом пренебрежимо мало.

11 Дек, 02:05 #248 #892168

>>891757
Есть опенсорсный ecl, который компилится через сишку, но он не умеет в кросскомпиляцию. Автор говорит, что его код для этого нужно прилично перелопатить.
Также существует clasp, но он пока только пилится и совсем сырой.

11 Дек, 16:27 #249 #892464

Аноны, что скажете за htdp курс на edx, хорош ли? При том, что cs50 я уже прошел

Ответы893248893346

12 Дек, 21:00 #250 #893236

Ну что, хипстеры, все ретроградствуете?
Поясните, пожалуйста, почему нельзя считать руби развитием идей общелиспа, и вообще, назовите хоть одно фундаментальное различие между ними, не считая синтаксиса и махрового легаси вроде cons-ячеек, очевидно.

Ответы893238893244

12 Дек, 21:02 #251 #893238

>>893236
Где еще ты можешь редактировать не странный текст, а синтаксическое дерево?

Ответы893256

12 Дек, 21:10 #252 #893244

>>893236
Разве в раби метапрограммирование не уровня жс (тупая интерпретация строк)?

Ответы893256

12 Дек, 21:16 #253 #893248

>>892464
Забей на SICP/TAPL/HtDP парашу. Сразу читай Lambda The Ultimate, затем OnLisp, наконец плавно переходи к Introduction to MIPS Architecture - идеальная архитектура для реализации своего первого Lisp-компилятора на основе CPS. Если интересуют структуры данных, то только MIT-овский 6.851 Advanced Data Structures. Виртом и Ахо-Копрофтом можешь сраку подтереть. Кнута не читай, ему есть адекватная замена - книга Hacker"s Delight.

Ответы893289893354893439

12 Дек, 21:32 #254 #893256

>>893238
В пистоне, например. https://docs.python.org/3/library/ast.html
>>893244
Разве макросы в CL (ты же об этом, да?) не существуют, в основном, для компенсации небогатого синтаксиса?

Ответы893258893260

12 Дек, 21:34 #255 #893258

>>893256
Ты про reader-макросы что ли? Ну да, они для этого и нужны.

Ответы893932

12 Дек, 21:38 #256 #893260

>>893256
Вопрос был о том, что лиспокод это AST. И ты редактируешь не строчки, а сразу AST.

Посмотри вот это: http://www.parens-of-the-dead.com/

Ответы893932

12 Дек, 22:53 #257 #893289

>>893248
Добавил в свою копилку advanced-чтива.

Ответы893354

13 Дек, 00:38 #258 #893346

>>892464
Забей на Lambda The Ultimate/OnLisp/Introduction to MIPS Architecture парашу. Сразу читай SICP, затем TaPL и наконец плавно переходи к HtDP - идеальное руководство для реализации своего первого первого полноценного проекта. Если интересуют структуры данных, то только Аховский Data Structures and Algorithms. Маккарти и Тернером можешь сраку подтереть. Уоррена не читай, ему есть классическая замена - книга The Art of Computer Programming.

Ответы893354

13 Дек, 00:45 #259 #893354

>>893346
>>893289
>>893248
http://macode.ru/

sage 13 Дек, 07:27 #260 #893439

>>893248
Охуенно ты конечнo tapl & htdp рядом поставил.

14 Дек, 00:49 #261 #893932

>>893260
До тех пор, пока парсер не сделает свою работу, никакого AST в принципе нет, ты редактируешь все те же строчки, не говоря уже о макросах, которые могут экспандиться хуй знает во что, reader-macros, на которых можно сделать хоть транслятор PHP в s-expressions.
>>893258
Я о том, что метапрограммирование уровня CL -- это костыль, возникающий от недостатков в дизайне языка. У пишущего на раби или любом другом современном языке потребности в определении новых синтаксических конструкций, как правило, не появляется. Это такой же атавизм, как и cons-ячейки.

Ответы893941894027

14 Дек, 01:06 #262 #893941

>>893932
То же, что утверждать, что функции
>-- это костыль, возникающий от недостатков в дизайне языка. У пишущего на рабивасике или любом другом современном языке потребности в определении новых функций, как правило, не появляется.
Толстовато.

Ответы893976

14 Дек, 02:14 #263 #893976

>>893941
>Толстовато.
Если ты это о своём посте, то да. Синтаксис -- средство, а не цель, поэтому, во имя консистентности, целесообразнее выделить из множества синтаксических конструкций подмножество тех, которые позволяли бы описать любую из возможных функций, чем заставлять программиста заниматься этим самому. Как пример -- стандартная в лиспе практика использования макросов вроде with-something. На рубях подобное пишут, не прибегая к "метапрограммированию".

Ответы894008

14 Дек, 03:55 #264 #894008

>>893976
Макросы суть те же функции с тем лишь исключением, что они могут принимать код в качестве аргумента. Собственно и "консистентность" они нарушают не более, чем самописные функции.
>целесообразнее выделить из множества функций подмножество тех, которые позволяли бы описать любую из возможных предметных областей, чем заставлять программиста заниматься этим самому
Вот как-то так это звучит. Ты же понимаешь, что не просто так люди на XML программируют.

14 Дек, 08:31 #265 #894027

>>893932
Вот только в лиспах почему-то поддержку cps, контрактов, типов, erlang-style обработки исключений и паттерн-матчинга запиливают с помощью библиотек, а в других языках приходится ждать новой версии языка. Ну и да, толстовато. Ни в руби, ни в лиспах не шаришь, сразу ведь понятно.

14 Дек, 09:41 #266 #894044

>>879929
Стажёром пойти без диплома, возьмут?

15 Дек, 22:24 #267 #894994

Что может стоять на месте x в следующих выражениях?
(a) > (car (x (cdr ’(a (b c) d))))
B
(b) > (x 13 (/ 1 0))
13
(c) > (x #’list 1 nil)
(1)

Ответы895089

16 Дек, 01:34 #268 #895089

>>894994
Ну чего же ты, анон, это ж проще простого.
car
or
apply

16 Дек, 22:26 #269 #895603

Почему лисп хорош для всяких ИИ?

Ответы895650896025922243

16 Дек, 23:52 #270 #895639

http://learnlispthehardway.org/

Ответы895647

17 Дек, 00:16 #271 #895647

>>895639
Её уже дописали?

41 Кб, 256x223

17 Дек, 00:23 #272 #895650

>>895603
Никто точно не знает. Боюсь, человечеству потребуется ещё ни одна сотня лет, чтобы всецело понять магию скобок.

Ответы922243

17 Дек, 19:11 #273 #896025

>>895603
Нипочему. Это миф.

Т.е. он мог быть в чём-то хорош для символьных вычислений, что есть форма ИИ, но это всё в далёком прошлом.

20 Дек, 04:53 #274 #897351

IDE для общелиспа.
https://shinmera.github.io/portacle/

Ответы898986

22 Дек, 20:01 #275 #898986

>>897351
Как под этим под виндой сделать vim-mode?

Ответы899007

22 Дек, 20:26 #276 #899007

>>898986
evil прикрути. Но только зачем?

Ответы899085

22 Дек, 22:12 #277 #899085

>>899007
Я не умею, мне неудобно, я плохой. Но как это сделать?

Ответы899192899199

22 Дек, 23:57 #278 #899192

>>899085
Вим поставить - не вариант? Тем более, если ты виммер, то прикрутить slimv должен осилить.

23 Дек, 00:05 #279 #899199

>>899085
Ну или spacemacs

23 Дек, 09:57 #280 #899353

https://www.gnu.org/software/guix/ - новый нескучный дистрибутив, основанный на NixOS.
NixOS/Nix Package Manager используют для сценариев сборки пакетов и конфигов системы DSL похожий на Haskell, здесь же для этих задач используется Guile Scheme.

Ответы906480

30 Кб, 480x360

23 Дек, 14:08 #281 #899448

(let ((seed 1234))
(defun rand ()
(setf seed (mod ( seed 16807) 2147483647))))

Почему после каждого вызова (rand)
[2]> (rand)
20739838 ; здесь я понял, 123416807
[3]> (rand)
682106452 ; а тут с хуя такое
[4]> (rand)
895431078 ; ??????????????

Выходят такие ответы?

Ответы899449

23 Дек, 14:09 #282 #899449

>>899448
(let ((seed 1234))
(defun rand ()
(setf seed (mod (звездочка seed 16807) 2147483647))))

Ответы899484

33 Кб, 492x390

23 Дек, 15:01 #283 #899484

>>899449
Разобрался, спасибо.

24 Дек, 21:22 #284 #900243

Экспертную систему реально осилить на общелиспе?

Ответы900349

25 Дек, 01:52 #285 #900349

>>900243
Ее и на паскале можно. Почему не пролог?

Ответы900391

25 Дек, 03:53 #286 #900391

>>900349
Потому что на лиспе есть свой пролог. Это то, что обязан запилить каждый начинающий лиспер.
http://franz.com/support/documentation/current/doc/prolog.html

30 Дек, 12:07 #287 #903508

Можно ли найти работу на лиспе? А может даже удаленную? В гугле лишь сомнительные ссылки

Ответы903524903538903688

30 Дек, 12:38 #288 #903524

>>903508
На кложе разве что, остальные лиспы никому нахер не вперлись кроме комонлисперов отсюда

30 Дек, 13:01 #289 #903538

>>903508
Очевидный лиспджобс.
Алсо, лисповакансии нужно не искать, а создавать самому.

30 Дек, 18:12 #290 #903688

>>903508
у crossover была пара вакансий на удаленку поддерживать легаси на крестах и общелиспе
еще есть AutoCAD где AutoLISP встроенный язык, на hh иногда встречаются вакансии

Ответы903774

30 Дек, 19:22 #291 #903774

>>903688
Кстати, да, самый верный способ покодировать на Лиспе на работе-AutoCAD, но туда не вкатиться, как в айти после пары книжек.

31 Дек, 20:54 #292 #904207

Как вычислить сколько осталось до конца Кали-Юги?

Она началась 23 января 3102 года до нашей эры, а должна окончиться через 432 тыс. лет после начала.

Ответы904362

01 Янв, 16:14 #293 #904362

>>904207
[code lang=lisp]
(defun сколько-там-осталось-то? (&optional (от (сегодня)))
'дохуя)
[/code]

02 Янв, 16:55 #294 #904713

Можете пояснить за сборщик мусора в лиспе и можно ли сделать лисп без него? И вроде есть еще компиляторы лиспа в Си, что скажете?

И насколько будет плохо, если я буду работать с лиспом в vim?

Ответы905029

03 Янв, 12:20 #295 #905029

>>904713
Не пойму, ты о Common Lisp спрашиваешь или о лиспах в целом?
>и можно ли сделать лисп без него?
https://www.reddit.com/r/lisp/comments/4mtktn/bone_01_lisp_without_garbage_collection/
>И вроде есть еще компиляторы лиспа в Си, что скажете?
ECL, например, мало кто использует, потому что медленнее остальных реализаций и не полностью соответствует стандарту.

Ответы905167

03 Янв, 16:13 #296 #905167

>>905029
Спасибо. Еще такой вопрос. Как лисп и шитый код вместе?

Ответы905180905286

03 Янв, 16:30 #297 #905180

>>905167
Так форт - ето тот же лисп, только без скобочек и для пещерных людей

03 Янв, 18:27 #298 #905286

>>905167
Що? Куда шитый код?

04 Янв, 12:10 #299 #905683

Ну что вы, общелюбы? Каково это, жить без call/cc в 2017 году?

Ответы905703

04 Янв, 12:58 #300 #905703

>>905683
Ну кложуристы вон вообще без TCO, и ничего, как-то обходятся.

Ответы905712905817961017

04 Янв, 13:24 #301 #905712

>>905703
На кложу обычно с явы/жс переходят, а там народ, как мы знаем, беспринципный, непривередливый, им что бэйсик, что хаскель, что вилкой, что лопатой - всё одно. Про такие мелочи как tco или call/cc и говорить не приходится, тем более, что они в CPS и руками писать не гнушаются.

Ответы905787

04 Янв, 15:08 #302 #905787

>>905712
Тсо не нужно. Хвостовые вызовы должны быть явными. Когда у тебя итеративный процесс и рекурсивный процесс выглядят одинаково, это плохонько и мислидинг.

Ответы905799

04 Янв, 15:34 #303 #905798

Ананасы, как сделать так чтобы эмакс показывал только одно окно на фрейм. Т.е. если я открываю второе окно, то он просто создает фрейм с ним

Ответы905801

04 Янв, 15:34 #304 #905799

>>905787
О, а вот и оправдания "это не баг, а фича" подъехали. Такие как ты и бэйсик оправдывали, что де код должен быть явным и без черных ящиков, и полиморфизм у вас был вредным.
>Когда у тебя итеративный процесс и рекурсивный процесс выглядят одинаково
Щито?

Ответы906439

04 Янв, 15:37 #305 #905801

>>905798
>если я открываю второе окно
Что-что ты делаешь? Можно разделить текущий фрейм на два окна, а открывают, например, файл

Ответы905829

04 Янв, 16:16 #306 #905817

>>905703
Прямо как общелисперы, только у тех даже явного тсо нет.

Ответы906252

04 Янв, 16:42 #307 #905829

>>905801
Я не хочу несколько окон в фрейме, я хочу много фреймов и в каждом по окну чтобы управлять ими через WM

Ответы906259

05 Янв, 01:50 #308 #906252

>>905817
Есть. И даже во взаиморекурсивные умеет. И даже без костылей, как у кложуристов.

05 Янв, 02:03 #309 #906259

>>905829
https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-Hooks.html#Standard-Hooks
>buffer-list-update-hook
Вот, кажется, подходящий хук.

05 Янв, 15:29 #310 #906439

>>905799
> Щито
Вот когда поймешь - возвращайся и поговорим про бейсик.

Ответы906443

05 Янв, 15:44 #311 #906443

>>906439
Будто с тобой есть о чем говорить. Спорол хуйню и доволен.

Ответы906976

05 Янв, 16:53 #312 #906480

>>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" - фиг знает.

Нужна помощь, небольшое количество Яндекс.Денег в качестве благодарности гарантирую.

Ответы906534961019

05 Янв, 17:31 #313 #906510

Хочеться написать свой лисп. Это нормально?

Ответы906521

05 Янв, 17:38 #314 #906521

>>906510
Да, даже книгу для таких написали - Lisp in Small Pieces

05 Янв, 17:56 #315 #906534

>>906480
>ни на одном не взлетела графика
А ты уверен, что там есть чему взлетать? Образ-то хоть и сжатый, но всего на 140мб, если иксы туда и впихнули, то без какой-либо оболочки.

Ответы906555

39 Кб, 1083x304

05 Янв, 18:20 #316 #906555

>>906534
>А ты уверен, что там есть чему взлетать? Образ-то хоть и сжатый, но всего на 140мб, если иксы туда и впихнули, то без какой-либо оболочки.
После
xz -d guixsd-usb-install-0.12.0.x86_64-linux
получилось 900 Мб.

Не думаю, что guixоделатели ожидают, что их пользователи будут настолько кульхацкерами, что начнут сами ставить иксы. Хотя кто их знает... Попробую в мане https://www.gnu.org/software/guix/manual/ про иксы почитать.

Но даже если допустить, что они не положили в исходную поставку иксы (хрен их знает, на самом деле), надо понимать, как их установить и прикрутить сверху кеды с КДМ-ом (или что там сейчас за него).

Ответы906560907186

05 Янв, 18:28 #317 #906560

>>906555
Я отбежал.

06 Янв, 06:05 #318 #906976

>>906443
Значение какого слова тебе непонятно?

06 Янв, 17:27 #319 #907186

>>906555
Я посмотрел, иксов в установочном образе и правда нет, но в desktop.scm, который в руководстве предлагают использовать в качестве основы, прописаны и гном, и крыса.
https://www.gnu.org/software/guix/manual/html_node/Proceeding-with-the-Installation.html

Ответы931379935181

06 Янв, 20:30 #320 #907298

А правда, что лисп без проблем можно использовать на квантовом компьютере?

Ответы907348

06 Янв, 21:47 #321 #907348

>>907298
Не более чем остальные. http://www.schloerconsulting.com/quantum-computer-q-lisp-programming-language

11 Янв, 19:47 #322 #909970

Серия статей про реализацию эмулятора CHIP-8 на общелиспе
http://stevelosh.com/blog/2016/12/chip8-cpu/

Ответы910309

12 Янв, 09:42 #323 #910309

>>909970
Завидую ему, хотелось бы тоже иметь время на подобные эксперименты.

Ответы910565

12 Янв, 17:39 #324 #910565

>>910309
Да просто признай, что у тебя давно уже не осталось сил и мотивации на подобные эксперименты, а не времени.

13 Янв, 15:02 #325 #911249

бамп

какой фреймворк использовать для юнит-тестов?

Ответы912378912474

13 Янв, 16:47 #326 #911304

кроссовер упорно который месяц ищет лиспера..
hh.ru/vacancy/19379442
при чем они нормальная контора, сейчас и вообще топчик чтобы работать удаленно..

Ответы911445

13 Янв, 20:00 #327 #911445

>>911304
>Required Skills:
>C/C++ programming using MS Visual Studio IDE
Лиспера они ищут, хохо.
Жуткое легаси под Win'95, вот у них что.

15 Янв, 01:05 #328 #912378

>>911249
Любой. Prove, например

15 Янв, 06:35 #329 #912474

>>911249
Юнит-тесты не нужны.

Ответы915341915618

19 Янв, 20:37 #330 #915341

>>912474
ты сейчас сам себя обоссал

Ответы915379

19 Янв, 21:32 #331 #915379

>>915341
Как там в 00-ых?

20 Янв, 11:42 #332 #915617

Поясните за Racket.

Ответы915627915698

20 Янв, 11:52 #333 #915618

>>912474
>динамикопараша
>тесты нинужны
Уряяя

Ответы915625

20 Янв, 12:08 #334 #915625

>>915618
> Юнит-тесты
> тесты
Почему ты такой тугой?

20 Янв, 12:09 #335 #915627

>>915617
Поясняю.

Ну серьезно, хоть немного конкретизируй запрос. Ракетка - хорошо и замечательно, если в общих чертах.

Ответы915634

20 Янв, 12:20 #336 #915634

>>915627
Ну, например, какие отличия от просто Scheme и всяких Common LISP. Еще интересует о среде Dr.Racket и ее удобстве.

Ответы915636915703

20 Янв, 12:25 #337 #915636

>>915634
Common lisp - это друглй язык. Ракетка - одна из реализаций\диалектов схемки. Но на самом деле это больше, чем схемка - это еще и исследовательский проект, и многоязыковая среда для обучения програмированию. По поводу удобства - ну так возьми да скачай, попробуй. Ты чего аутируешь-то?

20 Янв, 13:58 #338 #915698

>>915617
Схемка с кучей йоба-батареек, средой разработки из коробки, что снижает порог входа. Батарейки крутые, интересные, но кроме них больше ничего нет, и работает это счастье слишком медленно.

20 Янв, 14:15 #339 #915703

>>915634
>какие отличия от просто Scheme
Про схему тебя пояснили
>и всяких Common LISP
а про всякие другие в шапке более-менее расписано.
>Еще интересует о среде Dr.Racket и ее удобстве.
Удобство - это не про неё, вот что мне кажется.
Емакс с гейзером лучше, хоть и чуть сложнее в освоении. Но до slime всё равно ни то, ни другое не дотягивает.

24 Янв, 10:35 #340 #918515

Paradigms of Artificial Intelligence Programming - Peter Norvig есть у кого во читаемом формате? EPUB/FB2 было бы идеально.

Ответы921182

27 Янв, 13:55 #341 #920272

О! Тут есть кто живой, или лисперы вымерли, так же, как и паскальщики? Короч, надо накактать нешарящему ну вот ни разу человеку рабочцю программу для коммонлиспа, которая делает ничего, кроме переименовывания внутри выражения sin на cos, sqrt же -- на abs. Буду очень благодарен за быстрый ответ.

Ответы920366920370

27 Янв, 18:19 #342 #920366

>>920272
Но зачем?

27 Янв, 18:30 #343 #920370

>>920272
Тебе же не тупой реплейс нужен? Верно?

28 Янв, 19:24 #344 #920984

http://phoe.tymoon.eu/clus/doku.php?id=clus:todo

28 Янв, 21:53 #345 #921093

Пиздец, задали работу по этому, а никто не кодит, купить не у кого.

Ответы921165

29 Янв, 00:18 #346 #921165

>>921093
Ну так запили, раз задали. В чем проблема-то?

Ответы921170

29 Янв, 00:32 #347 #921170

>>921165
Я из тех, кто покупает и так сдает. В понедельник сдавать, будь это Паскаль или С++, то уже бы нашел, а это... Нашел одного человека, жду когда ответит. Если не ответит, то жопа.

29 Янв, 00:38 #348 #921174

А что крутые хацкеры думают насчёт cl21? http://cl21.org/ Стоит-ли эта библиотека внимания, или это всё от лукавого?

Вброшу ещё один приятный лиспик на этот раз поверх питона: hylang: http://docs.hylang.org/en/latest/

Ответы921245

29 Янв, 00:56 #349 #921182

>>918515

в pdf
http://www108.zippyshare.com/v/Ew2vjCEW/file.html

Ответы921871

29 Янв, 01:47 #350 #921245

>>921174
> More object oriented.
> Syntax for regular expression.
Ох...

Сколько уж этих редизайнов было.

Ответы922026

29 Янв, 01:51 #351 #921249

> even Clojure doesn't have reader macro
Неправда, кстати.

Вообще, клу нужен нормальный новый стандарт, а не наколенные поделки, иначе никак не взлетит, имхо.

30 Янв, 09:36 #352 #921871

>>921182
Спасибо, бро!

30 Янв, 15:19 #353 #922026

>>921245
>Сколько уж этих редизайнов было.
И сколько? Что-то я ни одного не припоминаю.

30 Янв, 18:37 #354 #922243

>>895603
>>895650
Для ИИ зделали пролог, а лисп язык общего назначения.

Ответы922640

30 Янв, 23:11 #355 #922640

>>922243
Экспертные системы - не ИИ

11 Фев, 19:04 #356 #931091

https://github.com/TBRSS/overlord
бамп

12 Фев, 06:07 #357 #931379

>>907186
Бамп GuixSD, пользователи отзовитесь

Ответы931618

12 Фев, 16:29 #358 #931618

>>931379
Почто призываешь нас?

Ответы935181

91 Кб, 1200x848

12 Фев, 18:28 #359 #931729

Поясните за этот ваш лисп на андроиде. Вот это 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

Ответы931754

12 Фев, 18:57 #360 #931754

>>931729
Смотря для чего тебе. Если просто поиграться с реплом, то да, полноценные.

Ответы931758

12 Фев, 19:02 #361 #931758

>>931754
Есть некий код для общелиспа http://www.fuzzylisp.com/downloads.html его можно запустить на этих приложениях?

Ответы931853

12 Фев, 20:42 #362 #931853

>>931758
Первое только для кложуры, совсем другой язык.
А во втором - да, должно.

13 Фев, 17:40 #363 #932376

http://brutalism.rs/post/process-aesthetic-engine-2/

17 Фев, 18:40 #364 #935181

>>931618
>Почто призываешь нас?
Поясните, как установить систему, вернее, как поменять на ней очищенное от блобов линукс-ядро на обычное "блобосодержащее" https://github.com/8p8c/my-guix/blob/master/packages/linux-nonfree.scm (у меня свободное ядро ругается на отсутствие драйвера под модем, соответственно не поднимается сеть)

Также, как в системе могут одновременно содержатся
>и гном, и крыса >>907186
и отсутствовать иксы?

Как поставить последние кеды, буду разбираться после того как осилю установку.

17 Фев, 19:09 #365 #935195

>>875320 (OP)
>+ AllegroCL IDE упаси боже
Чем он плох?

Ответы935691

17 Фев, 19:40 #366 #935225

>>876958
Да: https://archive.org/details/bitsavers_symbolicsb_3912644

17 Фев, 20:41 #367 #935278

Хули все опенсорсные реализации CL так дерьмово работают под виндой? Существуют ли годные библиотеки для современного OpenGL?

Ответы935280935399935691

17 Фев, 20:48 #368 #935280

>>935278
Слишком маргинальное и малочисленное сообщество, на нормальные порты не хватает.
Ставь виртуалку и пердолься, много времени и нервов сбережёшь.

18 Фев, 00:42 #369 #935399

>>935278
Потому что программисты не пользуются виндой.

капитан

18 Фев, 17:10 #370 #935691

>>935195
А ты его не видел?
>>935278
А в чем проблема? Насколько я знаю, ccl и sbcl уже давным-давно нормально работают под виндой.
>Существуют ли годные библиотеки для современного OpenGL?
cepl, varjo, cl-opengl

18 Фев, 18:03 #371 #935735

Как раз давеча наткнулся на это, с виндой, кстати:
https://www.youtube.com/watch?v=W3kfDKDSvM8

19 Фев, 05:42 #372 #936075

>>879929
>Опыт программирования на Haskell в коммерческих проектах не менее 5 лет.
Какое изящное унижение борщехлебов.

Ответы936078

19 Фев, 05:58 #373 #936078

>>936075
Блин, там на жабе 5 лет, а я повелся:
https://spb.hh.ru/search/vacancy?text=haskell&area=2
Интересно, что количество вакансий по Clojure и Haskell в России почти совпадает (22 и 20).

Ответы937202

20 Фев, 18:19 #374 #937202

>>936078
...при этом кложурь раза в три моложе х-ля.

20 Фев, 18:32 #375 #937206

Не пропустите, лиспаны: https://hh.ru/vacancy/19680371

Ответы937923

21 Фев, 20:30 #376 #937851

Почему Guile не выводит результат только когда я ему интерактивно всё ввожу?
Когда скармливаю файл с тем, что я ввожу он просто его компилирует, запускает и не выводит результат.
Gambit делает тоже самое, разве что не компилирует.
ЧЯДНТ?

Ответы938780

21 Фев, 21:20 #377 #937923

>>937206
>зп: 25 тысяч рублей. На испытательный срок (3 месяца) - 15 тысяч рублей.

Ответы938268

22 Фев, 08:23 #378 #938268

>>937923
>Уровень зарплаты
>з/п не указана
wat

22 Фев, 22:18 #379 #938780

>>937851
Потому что ты не выводишь результат?

24 Фев, 17:56 #380 #940211

В Allegro CL до сих пор есть код Symbolics, забавно.

Ответы940265

24 Фев, 19:50 #381 #940265

>>940211
В maxima тоже можно найти много старого кода.

25 Фев, 22:28 #382 #941061

Кто-нибудь проходил эти курсы? http://franz.com/services/classes/

Ответы941229

26 Фев, 02:50 #383 #941229

>>941061
Сомневаюсь. Вообще, не очень понимаю, зачем подобные курсы нужны.

02 Мар, 22:47 #384 #944939

У кого-нибудь 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?

Ответы944978

02 Мар, 23:24 #385 #944978

>>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.
;;

То ли я ебанутый, то ли лыжи не едут.

Ответы944983

216 Кб, 1920x1015

02 Мар, 23:34 #386 #944983

>>944978
Наконец-то получилось.

Ответы945042

03 Мар, 02:03 #387 #945042

>>944983
В чем проблема была?

Ответы945852946153

04 Мар, 09:59 #388 #945852

>>945042

Лыжи не ехали.

04 Мар, 14:27 #389 #946153

>>945042
Я не копался в причинах, просто поставил вручную trivial-gray-streams и проигнорировал ошибку при установке swank. Наверное это какой-то баг в Quicklisp.

Ответы946164946168

04 Мар, 14:41 #390 #946164

>>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.

04 Мар, 14:44 #391 #946168

>>946153
И кстати, у меня с trivial-gray-streams из quicklisp'а mcclim работает.

11 Мар, 16:21 #392 #951248

Стоит качать VS2017? Или там могут быть проблемы непофикшенные?

Ответы951250

11 Мар, 16:22 #393 #951250

>>951248
Ой, тредами промахнулся. Я еще сижу и думаю чего все на лиспе так помешались.

Ответы951545

11 Мар, 22:09 #394 #951545

>>951250
>сижу и думаю чего все на лиспе так помешались
Какой-то странноватый у тебя досуг: надумал себе чего-то и сидишь да размышляешь.

31 Кб, 604x459

12 Мар, 02:25 #395 #951666

>>877179
>материалов на русском

в биореактор, быдло

Ответы952182

12 Мар, 21:45 #396 #952182

>>951666
На родном языке-то всяко комфортнее воспринимать.

Ответы957985

Emacs 13 Мар, 10:12 #397 #952490

Хочу отключить один pizda-minor-mode, когда включен определенный major-mode и вместе с ним определенный xyu-minor-mode, как-то так можно?

Ответы952496

13 Мар, 10:26 #398 #952496

>>952490
Добавь в xyu-minor-mode хук, который будет проверять условия и отключать pizda-minor-mode

Ответы952499

15 Кб, 350x350

Emacs 13 Мар, 10:31 #399 #952499

>>952496
О заебись получилось, я мажорному сначала хотел хук прописать, не срабатывало, а когда минорному все ок.

14 Мар, 12:33 #400 #953471

есть ли стандартная функция генерации случайных числе(Bignum) в scheme? random работает с обычным интом

30 Кб, 200x237

15 Мар, 15:31 #401 #954394

Читаю 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/ , приемлем ли мой вариант?

30 Кб, 200x237

15 Мар, 15:31 #401 #954394

Читаю 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/ , приемлем ли мой вариант?

Показать весь текст

15 Мар, 19:57 #402 #954600

>>875320 (OP)
Анончики, напомните, пожалуйста, как в Емаксе исполнить простейший код типа (* 2 2)?

Ответы954725

15 Мар, 22:42 #403 #954725

>>954600
С-x e?

20 Мар, 03:38 #404 #957282

Анон, есть один вопрос: Если бы тебе ресетнули все проффесиональные знания, и оставили лишь знания об источниках знаний, учебниках, курсах и подобном, какие учебники годнота, какие мусор. Какой список учебников по математике ты составил бы для средней школы? Просто я подозреваю, что я мыслю о математических процессах очень неэффективно и неправильно. Хочу поправить фундамент, так сказать. Особенно интересует есть ли годные англоязычные учебники по математике переведенные на русский?

Ответы957849957879957913

20 Мар, 22:06 #405 #957849

>>957282
Почему именно англоязычные учебники переведенные на русский? Смысл чтения подобных учебников?

20 Мар, 22:43 #406 #957879

>>957282
СССРовские учебники (ну или программы по обучению, или... не знаю как правильно выразиться) по математике всем миром признаны самыми лучшими. Сравниться может с совком в этом только Корея. Так что подумай, не лучше ли на русском изучать?

Ответы957918

84 Кб, 700x628

20 Мар, 23:31 #407 #957913

>>957282
>годные англоязычные учебники по математике переведенные на русский

20 Мар, 23:42 #408 #957918

>>957879
>всем миром признаны самыми лучшими
Не имеющий аналогов, суетливый, сверхманевренный, блохастный учебник по математике под редакцией Садовничего.

21 Мар, 01:46 #409 #957985

>>952182
Только если ты английский не знаешь.

Ответы958154

21 Мар, 12:47 #410 #958154

>>957985
Конечно, на уровне родного языка не знаю. Слишком уж это трудозатратно и неоправданно.

Ответы958191

21 Мар, 14:09 #411 #958191

>>958154
Ну тут нужно говорить не что ты не знаешь английский на уровне родного. А что у тебя боли при чтении информации на английском.
Исправляется это только одним способом.

Иван 24 Мар, 18:18 #412 #960196

Common Lisp очень нравится, если я не ошибаюсь, хотя не ручаюсь, эти ребята его используют: www.konsom.ru/solutions, так что вещь стоящая. Scheme пользовался, действительно хорош разве что только для изучения, дальше пока не заходил. Подборка годная.

Ответы960220

24 Мар, 18:53 #413 #960220

>>960196
Зачем ты это постоянно постишь?

25 Мар, 03:59 #414 #960453

Наконец-то вкурил как работает CFFI, теперь могу пользоваться cl-sdl2 без баттхёрта.

Ответы960523

25 Мар, 10:20 #415 #960523

>>960453
cl-sdl2 до сих пор настолько сырой, что без знания CFFI им невозможно пользоваться?

Ответы960621

25 Мар, 13:06 #416 #960573

Что-то без продвинутой системы типизации (в том числе и с зависимыми типами) и без монад да чистоты функций как-то смотрится на лисп, как на Си-- какой-то мира функциональных языков.

Ответы960732

25 Мар, 14:12 #417 #960621

>>960523
Ну, я не нашел другого способа изменять отдельные пиксели в поверхности. Документации нормальной, кстати, я тоже не нашел, при этом у более старого lispbuilder-sdl она есть.

Ответы960635

25 Мар, 14:24 #418 #960635

>>960621
В sdl2 же выпилили поверхности, теперь вместо них текстуры. Разве нет? В любом случае, не лучше ли будет работать с пикселями через opticl?

Ответы960656

25 Мар, 14:47 #419 #960656

>>960635
Поверхности никуда не делись. Меня интересует именно SDL сейчас.

25 Мар, 16:28 #420 #960732

>>960573
>Си--
Форт уж тогда

25 Мар, 23:15 #421 #961017

>>905703
Есть (recur). Если этого мало, то завезли уже давно континюэйшены https://github.com/cjfrisz/clojure-tco

Ответы963354

25 Мар, 23:18 #422 #961019

>>906480
Устанавливал гикс на свой Доебан. Иногда он выключал мне компьютер после установки пакета. Надеюсь, уже починили

30 Мар, 00:05 #423 #963354

>>961017
Костыли-костыльчики уровня cl-cont.

Ответы963355

30 Мар, 00:07 #424 #963355

>>963354
А нет, до cl-cont даже не дотягивает.

30 Мар, 13:05 #425 #963558

Кложа норм вариант для нюфани для вката в лисп? До этого писал на жаве и питоне, сейчас на жсе фронт пишу. Хочу функциональщины попробовать.

Ответы963694

30 Мар, 16:46 #426 #963694

>>963558
>Кложа норм вариант для нюфани для вката в лисп?
Да, вполне, хоть и кложа немного особняком стоит в лисп-мире.
Но если же ты хочешь попробовать именно функциональщины, то лучше взять что-нибудь из ML-семейства, потому что лиспы больше про метапрограммирование, чем ФП

03 Апр, 21:31 #427 #966232

Как и анон выше, вкатываюсь в кложур, и сука я горю от lein. Как эту хуйню поставить под винду? Это пиздец, то он его вообще не видит, то видит только из папки с jar-ом, то блять сново не видит. Примерный ход действий: скачал батник, который ставит 2.7 версию, прописываю в системыне переменныу путь C:\clojure-1.8.0\lein, так же пробовал тот путь, в который он ставится с помощью self-install, резуьтат один, видит его только если сижу в папке с jar архивом. Ну что за пиздец, как его юзать то ?

Ответы966340966556

03 Апр, 23:01 #428 #966340

>>966232
После 16 попытки походу заработало. Хуй его знает что ему не нравится.
ЗЫ в конце переменной path нужны точка с запятой?

04 Апр, 11:22 #429 #966556

>>966232
>Ну что за пиздец, как его юзать то ?
Ну сам виноват, нормальные люди под шиндошсом не сидят

Ответы966746

04 Апр, 18:36 #430 #966746

>>966556
Как только на линуксе появится нормальный стек CAD/CAM систем, так сразу на него и перейду. А сейчас никому кроме кодеров ан фулл ставку и серферам интернетов он нахуй не нужен.

Ответы966963966966

04 Апр, 22:45 #431 #966963

>>966746
Тогда не жалуйся.

04 Апр, 22:48 #432 #966966

>>966746
Есть же виртуальные машины. Убунту сервер, объединённая папка с хост-системой, сеть в режим bridge и вперёд.

Ответы967002967005

04 Апр, 23:24 #433 #967002

>>966966
Есть даже виртуальные контейнеры с ide и консолью, но нет хотим шиндоус

Ответы967007

04 Апр, 23:26 #434 #967005

>>966966
Да пусть кактусами давится, жалко что ли?

04 Апр, 23:26 #435 #967007

>>967002
Это я про Cloud9, отличная штука

08 Апр, 23:48 #436 #969540

(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 как + помогите,плиз.

09 Апр, 12:10 #437 #969743

Все решилось.Нужно было выбрать Determine language from sourse и #lang racket .Опять забыл поменять.

17 Апр, 22:54 #438 #975315

Бля, кто пояснит за 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])

Халп, ткните носом, как последовательно получить результат работы всех этих функций

Ответы975317975549

17 Апр, 22:54 #439 #975317

>>975315
cgtqcvfrct = spacemacs

18 Апр, 14:24 #440 #975549

>>975315
У тебя слеш не тот в функции average

03 Май, 00:38 #441 #983882

Есть живые?
https://pastebin.com/qdXuq5kq
Есть такой пример из годной книжки clojure for brave. Но не могу понять, почему после recur remaining в if (empty? remaining-asym-parts) меняется содержимое хэша? ПОлучается что remaining заменяет remaining-asym-parts ? Почему?

Ответы983970

03 Май, 00:41 #442 #983885

Заодно, объясните, как работает recur в данном случае, у нас получается есть функция recur и два (чего?) параметра (ну вы поняли) remaining и final-body-parts. Каую роль играет каждый из параметров? По сути recur вроде как должен возвращать значение, но тут их два. Нипонятно.

03 Май, 00:45 #443 #983891

Вообще, куна нас кидает recur, в самое начало loop, к списку с аргументами, или сразу к телу функции (if в данном случае)?

03 Май, 00:51 #444 #983893

Так, я вроде смекнул что recur возвращает два значения, которые соотв. присваиваются двум аргументам loop

Ответы983900

03 Май, 01:17 #445 #983900

>>983893
recur - просто рекурсивный вызов текущей функции. Костыль такой, потому что jvm и потому что не осилили.

03 Май, 08:07 #446 #983970

>>983882
> clojure for brave
Поясни за эту книжку плз, годная?

Ответы984236984269

03 Май, 18:21 #447 #984236

>>983970
Годная, куда годнее немногочисленных изданий на русском. Если читать онлайн, то еще и бесплатная. http://www.braveclojure.com

Ответы984258

03 Май, 19:00 #448 #984258

>>984236
Ахуенно, ушел качать емакс и учить кложу. Спасибо за наводку, анон.

Ответы984313

03 Май, 19:12 #449 #984269

>>983970
ахуенная, поверхностная немного но прикольный стиль изложения. Мне покатила как первая книга по кложе (у меня уже был бекграунд в фп)

03 Май, 20:15 #450 #984313

>>984258
spacemacs

03 Май, 22:22 #451 #984410

Аноны, что я делаю не так? https://pastebin.com/DNJbZD5y

05 Май, 16:36 #452 #985277

Я, каталог-кун, заявляю
что я повелся на бессмысленую пропаганду лиспоблядей
и изучил етит их лисп
знание лиспа никак не помогло мне расширить кругозор или улутшить свой стиль программирования
лучше уж хорший учебник Prolog-а почитать с разбором задач
чем тратить свое время на бесполезное функциональное програаирование
краткий словарь:
лямбда-функция как параметр
функция высшего порядка- функция в которую передается функция или которая возврвщаяет функцию
замыкание-то же что и лямбда
мондада-массив

Ответы985334989103

05 Май, 18:00 #453 #985334

>>985277
Доблбоеб спалился. Если ты прочел на вики что такое функция высшего порядка то ты еще не выучил фп, да ты и прочесть то не смог -> >замыкание-то же что и лямбда
Я бы попросил тебя написать простейшую программку, что бы доказать, что ты не строчки на лиспе не написал, но я и так это знаю. Уебывай.

Ответы985350

05 Май, 18:30 #454 #985350

>>985334
Нюфаня, please.

06 Май, 12:15 #455 #985734

>>875320 (OP)
Ебанный язык свел двачера с ума.
https://lenta.ru/news/2017/04/21/sadkov/

Ответы985742985841

06 Май, 12:23 #456 #985742

>>985734
Потыкал палочкой шизика.

06 Май, 15:18 #457 #985841

>>985734
Не язык, а политач

12 Май, 04:02 #458 #989103

>>985277

> лучше уж хорший учебник Prolog-а почитать с разбором задач
> чем тратить свое время на бесполезное функциональное програаирование

Поэтому во все мейнстримные языки со всей силы тащат ФП-концепции, начиная с лямбд и ФВП и заканчивая трансдьюсерами, монадами и прочими сложными словами.

> лямбда-функция как параметр

Обосрался

> замыкание-то же что и лямбда

Обосрался[2]

> мондада-массив

Обосрался[3]

Ответы989208

12 Май, 13:16 #459 #989208

>>989103
Ловите нюфака пока не убежал.

14 Май, 15:59 #460 #990425

Кложуране и не только, есть два вектора, если к ним применить (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 перечислены функции, которые нужно использовать.

Ответы991129

15 Май, 16:38 #461 #991129

>>990425
[code]
(let ((keys (table-keys tbl)))
(map (fn (%) (data-record keys %)) (rest tbl)))
[/code]
Кложи не знаю, но видимо как-то так.
А вообще, кложурастов тут практически не обитает, потому что кложа - не лисп.

Ответы991456991496

15 Май, 23:24 #462 #991456

>>991129
Работает, спасибо.
>потому что кложа - не лисп
Зато у нас есть [] и {}, признайся, ты тоже хочешь.
А что считается топовым лиспом? Где то тут видел, но сейчас не нашел, кто то писал, мол, как там вы без фича-нейм в cl и кложур, но вроде кроме рокета больше ничего и нет.

Ответы991470

15 Май, 23:43 #463 #991470

>>991456
>Работает, спасибо.
>>потому что кложа - не лисп
>Зато у нас есть [] и {}, признайся, ты тоже хочешь.
В общелиспе они реализуются в несколько строк, но это не нужно, ибо солянка из разномастных скобок плохочитаема. Кстати, в кложе так сделать уже не получится.
>А что считается топовым лиспом?
Общелисп, конечно.
>Где то тут видел, но сейчас не нашел, кто то писал, мол, как там вы без фича-нейм в cl и кложур
Догадываюсь, схемер продолжениями хвалился. Но у них больше-то ничего и нет, в то числе и сообщества.

16 Май, 00:34 #464 #991496

>>991129
Тут не обитает, а свой тред-то у них есть? Куда податься кложуристу-ньюфагу?

Ответы991503

16 Май, 00:49 #465 #991503

>>991496
В жава-тхренд либо в жс

21 Май, 16:36 #466 #994268

Я вот хипстер с подворотами неофит от пограмирования и только недавно вкатился на первую работу, и вот решил на волне хайпа посмотреть все таки что такое функциональное программирование. Услышал про SICP, пищу первые хеллоувроды на SCHEME и вот мои первые вопросы:
1. Собственно, а зачем лиспы нужны? Ну т.е. какова сфера применения? Академические исследования? Софт?
2. Часто ФП еще называют декларативным программированием, но я так и не понял что оно такое. Т.е. вот например ф-я квадрат на пхп, или императивный стиль:
function square($x) {
return $x $x;
}
На лиспе оно как-то так:
(define (sqaure x) ( x x))
Но в чем глобальное отличие? Типа в первом - я говорю интерпритатору что и как сделать, а во втором - в общих чертах набрасываю? Нихуя не понимаю в общем.
3. Почему под такие вещи не пишут удобных ide?
4. На лиспах есть вообще удобные фреймворки, или сорт оф? Ну типа как ларавель на пхп. Допустим если я захочу на лиспе написать блог - что мне для этого требуется?

Ответы994282994414

21 Май, 16:48 #467 #994282

>>994268
ФП это не декларативное. Декларативное это что-то типа пролога (с натяжкой). Его суть в том тчо ты не описывешь порядок действий, а просто вкидываешь системе начальные данные и говоришь "зделай заебись", а она дальше ебется.

Ответы994302994331

21 Май, 17:08 #468 #994302

>>994282
Интересно, значит я хуйни наслушался.

21 Май, 17:58 #469 #994331

>>994282
Про лисп чего только не говорят, и что он ФП, и что декларативный. На самом деле что из него сделаешь то и будет. Это метаязык.

На лиспе благодаря макросам можно запилить язык декларативного программирования под свою область.

Ответы994333

21 Май, 17:59 #470 #994333

>>994331
Скажи, анончик, а на лиспе можно работу найти нормальную?

Ответы994337994356994425

21 Май, 18:05 #471 #994337

>>994333
>язык без синтаксиса
>найти работу нормальную

Ответы994341

21 Май, 18:09 #472 #994341

>>994337
Не понимаю о чем ты говоришь, у лиспа так то есть синтаксис.

Ответы994343

21 Май, 18:13 #473 #994343

>>994341
Я кстати охуеваю от синтаксиса, у того же scheme его за час можно выучить. Алсо еще вопрос, я так понял у ФП языков как таковых нет веще навроде переменных, типов данных? Т.е. в (define (sqaure x) ( x x)) - sqaure это просто ссылка на память?

Ответы994385

21 Май, 18:39 #474 #994356

>>994333
Clojure

Ответы994358

21 Май, 18:41 #475 #994358

>>994356
Можешь по-подробней пояснить за кложу. Я так понимаю что не просто кложей стак не ограничится?

Ответы994360

21 Май, 18:46 #476 #994360

>>994358
скалу знаешь? у скалы есть скаласкрипт, который по сути является джаваскриптом с синтаксисом скалы и не совместим с самой скалой. у кложура есть подобное. кложур, как и скала, работает на жвм со всеми вытекающими (экосистема етц).

на бекенде обычно ты будешь кроме кложы ходить в либы и легаси на джаве (реже на скале), на фронте я не видел чтоб часто юзали кложускрипт (или скаласкрипт).

кложа не очень похожа на обычные лиспы, у нее синтаксис посложнее и еще куча мелких отличий от "обычных" лиспов, а еще в ней очень хорошо видно то, что она ориентирована на jvm.

Ответы994363

21 Май, 18:49 #477 #994363

>>994360
Ну я сейчас пишу на жсе, и ищу еще какой нибудь интересный фп язык, на котором в будущем возможно будет найти работу и дополнить мой стэк. Как думаешь кложа под эти задачи подойдет?

Ответы994364

21 Май, 18:50 #478 #994364

>>994363
вполне

Ответы994365

21 Май, 18:50 #479 #994365

>>994364
правда я не видел чтоб у нас особо вакансий по ней было.

21 Май, 19:40 #480 #994385

>>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 и звёздочку на + потому что звёздочку здешняя разметка съедает).

21 Май, 19:40 #480 #994385

>>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 и звёздочку на + потому что звёздочку здешняя разметка съедает).

Показать весь текст
Ответы994423

21 Май, 20:41 #481 #994414

>>994268
>1. Собственно, а зачем лиспы нужны? Ну т.е. какова сфера применения?
>Академические исследования? Софт?
Нет, блядь, балет. Какая ещё может быть сфера применения у языка программирования общего назначения?
>2. Часто ФП еще называют декларативным программированием, но я так и не понял что оно такое.
Декларативным называют описание проблемы в терминах некой абстракции, отличающейся от абстракции машины (т.е. память и последовательность команд)
>3. Почему под такие вещи не пишут удобных ide?
SLIME. Было бы хорошим вопросом: почему для других языков ничего подобного рода не написали
>4. На лиспах есть вообще удобные фреймворки, или сорт оф? Ну типа как ларавель на пхп. Допустим если я захочу на лиспе написать блог - что мне для этого требуется?
Есть и не один.

Ответы994421

21 Май, 20:56 #482 #994421

>>994414
Спасибо. У меня вообще сложилось впечатление, буд-то лисп это как глина из которой разработчик лепят что нужно для своих задач, не? Пост, есть что-то как slime под схем? Я просто по сикп хочу заниматься. Или это мне надо гуглить все эти плагины для емакс?

Ответы994424

21 Май, 20:56 #483 #994423

>>994385
>Кроме кложи
Кложефанат незаметен. Ладно бы схему в пример привел, но не этот же недоязычок для скриптования явы, в котором даже tco нет.
>ходят слухи что с помощью макросов из лиспа можно сделать хоть C++, хоть Haskell, но на практике я такого колдунства не встречал
Плохо смотрел. Вот сишка, например https://github.com/y2q-actionman/with-c-syntax/blob/master/README.org

21 Май, 21:01 #484 #994424

>>994421
>У меня вообще сложилось впечатление, буд-то лисп это как глина из которой разработчик лепят что нужно для своих задач, не?
Да, эта одна из его характерных фишек.
>Пост, есть что-то как slime под схем?
Slime только для общелиспа, у схемы geiser. Рекомендую просто взять спейсмакс, там уже всё настроено.

21 Май, 21:04 #485 #994425

>>994333
Можно, но сложно, потому что вакансий мало, а те, что есть, в основном с высокими требованиями.

Ответы994429

21 Май, 21:14 #486 #994429

>>994425
Можно пару примеров таких вакансий, чтобы примерно уровень понять?

Ответы994431

21 Май, 21:18 #487 #994431

>>994429
Из того, что сходу вспоминается, - grammarly. Вроде даже по СНГ искали лиспера

Ответы994449

21 Май, 21:50 #488 #994449

>>994431
Спасибо, анончик. А на той же кложе может писать программы общего назначения, которые обычно пишутся на питоне, или пока маловатое библиотек для этого? Или может он просто не подходит для этого?

Ответы994470994595994642

21 Май, 22:42 #489 #994470

>>994449
Из кложи ведь можно использовать библиотеки для джавы. Думаешь их не достаточно?

Ответы994472

21 Май, 22:47 #490 #994472

>>994470
Ты прав, спасибо, что ответил на мои вопросы, пойду осваивать.

22 Май, 05:51 #491 #994595

>>994449
Все что можно писать на джаве можно писать на кложе.

22 Май, 10:33 #492 #994642

>>994449
>которые обычно пишутся на питоне
Нет, конечно. Ты бы согласился заменить весь используемый питонософт жавой? Сомневаюсь.
>или пока маловатое библиотек для этого?
Да библиотек-то достаточно, но есть у кложи один фатальный недостаток, из которого следует куча недостатков и в дизайне самого языка, и в его реализации, и сообществе, и, собственно, в библиотеках. И называется он JVM.

22 Май, 13:05 #493 #994683

https://repl.it/languages/scheme кому интересно, нашел удобный онлиан интерпритатор лиспа. Есть даже возможность зарегаться и сохранять свои хеллоуворды. Мне пока для подделий из первой главы сикпа хватает.
все то же неофит без подворотов

Ответы994889

22 Май, 20:46 #494 #994889

>>994683
https://racket-lang.org/download/
На, не мучайся.
>интерпритатор лиспа
Схемы. Лиспом обычно common lisp называют.

Ответы997529

28 Май, 16:43 #495 #997529

>>994889
Интересно, а кто-то умудрился запустить ту же схемку на винде в нормальной среде разработки? Или никсы + емакс наше все? Я пробовал в эклипсе, но плагины так и не заработали.

Ответы997536

28 Май, 16:53 #496 #997536

>>997529
>Интересно, а кто-то умудрился запустить ту же схемку на винде в нормальной среде разработки?
Да, емакс работает. Алсо, для задачек их сикпа и дррэкет сойдет
>Я пробовал в эклипсе, но плагины так и не заработали.
Они давно протухли, ибо какой лиспер захочет поддерживать плагин на яве для неюзабельного монстра

Ответы997539

28 Май, 16:58 #497 #997539

>>997536
>для задачек их сикпа и дррэкет сойдет
Да все равно пиздец как неудобно после няшных иде от жетбрейнс.
>Да, емакс работает.
А есть какая-то инструкция как запустить емакс + спейсмакс на винду? Ну для таких неофитов, кому само слово емакс это сильное колдовство. Мне вообще так что бы изкоробки.

Ответы997542

28 Май, 17:19 #498 #997542

>>997539
http://spacemacs.org/
Распаковываешь в .emacs.d в домашней директории и просто запускаешь емакс, выбираешь нужные слои и пользуешься. Кстати, там же можно попробовать спейсмакс прямо в браузере. Непонятно зачем и как, но оно работает.
Емакс можешь взять отсюда https://sourceforge.net/projects/emacsbinw64/files/release/

09 Июн, 01:32 #499 #1003394

ПЕРЕКАТ
>>1003393 (OP)
>>1003393 (OP)
>>1003393 (OP)

Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion