[Ответить в тред] Ответить в тред

09/07/16 - Новое API для капчи - внимание разработчикам приложений
03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 502 | 25 | 129
Назад Вниз Каталог Обновить

Лиспотред №6 Аноним 01/04/16 Птн 18:07:13  705167  
14595232335860.jpg (59Кб, 500x527)
Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

Основные диалекты
Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и, в некоторых реализациях (sbcl, например), частичный их вывод.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
+ свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (llvm; ориентирован на интероп с c++), ABCL (байт-код JVM), gcl, cmucl
+ коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl (для программирования под ведро и ios)
Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Тем не менее, Racket вполне практичен. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket), включая схему стандартов r5rs и r6rs.
Clojure - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.
Hy - Lisp-синтаксис для Python с анафорическими макросами
Emacs Lisp - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.
Tcl - скриптовый язык с немного наркоманскимстранным синтаксисом. Из коробки множество батареек на любой случай жизни, среди которых неповторимый Tk. Язык очень удобен для написания скриптиков, особенно когда к ним требуется приделать графический интерфейс.
Rebol
PicoLisp - Наркоманская хуита
newLISP - Скриптовый лисп с компактным и быстрым интерпретатором и батарейками на любой случай жизни. В первую очередь предназначен для скриптоты, которую обычно пишут на perl, python, tcl, sh: обработка текстов, работа с сетью, базами данных, взаимодействие с ОС, построение графиков и т.п.
Список возможностей: http://www.newlisp.org/index.cgi?Features
Отличия от других диалектов: http://www.newlisp.org/index.cgi?page=Differences_to_Other_LISPs

Как изучить?
Common Lisp
+ Practical Common Lisp http://www.gigamonkeys.com/book/ или русский перевод — http://lisper.ru/pcl/
+ On Lisp http://www.paulgraham.com/onlisp.html
+ Common Lisp HyperSpec http://www.lispworks.com/documentation/HyperSpec/Front/ — стандарт языка
+ Art of Metaobject Protocol — подробное описание MOP и CLOS
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/lisp
Алсо, годная статья про проектирование eDSL'ей на CL http://swizard.info/articles/solitaire/article.html

Scheme
+ http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
+ Racket Guide
+ SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет)
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/scheme

Clojure
+ Programming Clojure, 2nd edition (для новичков)
+ The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП)
+ Попрактиковаться можно на Exercism'е http://exercism.io/languages/clojure

Hy
+ Официальный сайт http://hylang.org/

Tcl/Tk
+ Официальный учебник http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
+ Документация по tcl http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm и tk http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm
+ Статьи про Tcl и Tk на wikibooks с примерчиками https://en.wikibooks.org/wiki/Category:Tcl_Programming
+ TkDocs с примерами на tcl, perl, ruby http://www.tkdocs.com/tutorial/index.html

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

!!Чтобы не пердолиться с емаксом, лучше можно взять уже преднастроенный spacemacs ( https://github.com/syl20bnr/spacemacs ).

Common Lisp
+ Emacs + SLIME - самый лучший вариант.
+ vim + SLIMV
+ LispWorks
+ AllegroCL IDE упаси боже
+ Eclipse + cusp
+ <Что-нибудь для сублайма/атома уже запилили, наверное?>

Scheme
+ Emacs + geiser
+ drRacket

Clojure
+ Emacs + CIDER
+ LightTable
+ Vim-fireplace
+ Cursive Clojure (IntelliJ plugin)
+ Counterclockwise (Eclipse plugin)

Tcl
+ Emacs + tcl-mode (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно)


Библиотеки
Common Lisp
+ Quicklisp ( https://www.quicklisp.org/beta/ ) - CPAN из мира CL
+ Quickdocs ( http://quickdocs.org/ ) - документация по всем пакетам из quicklisp
+ Cliki ( http://cliki.net/ )
+ Обзор экосистемы общелиспа на швабре ( http://habrahabr.ru/post/265589/ )

Scheme
+ Racket: http://pkgs.racket-lang.org/ и http://planet.racket-lang.org/
+ Chicken: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
+ http://snow.iro.umontreal.ca/?tab=Packages
+ http://www.schemespheres.org/spheres


Предыдущие треды: http://arhivach.org/?tags=3055,113
Шапки: https://titanpad.com/x87hR0KJ2w

Аноним 01/04/16 Птн 18:12:31  705174
Аноны, какой самый живой лишп пригодный для вебразработки?
Аноним 01/04/16 Птн 18:18:24  705183
>>705174
Common lisp
Аноним 01/04/16 Птн 18:21:21  705184
>>705174
Общелисп: https://github.com/TatriX/blue-water
Аноним 01/04/16 Птн 18:23:47  705186
>>705174
Clojure, Kawa.
Аноним 01/04/16 Птн 18:24:57  705188
>>705186
Толсто. Во всех смыслах толсто.
Аноним 01/04/16 Птн 18:43:19  705206
Реквестирую годный туториал по сигналам и рестартам в общелиспе.
Аноним 01/04/16 Птн 18:58:49  705215
>>705206
http://lisper.ru/articles/restarts
Видел где-то ещё один, но сходу не припомню.
Аноним 01/04/16 Птн 19:00:57  705222
>>705215
Читал оригинал. Ну ок.
Аноним 01/04/16 Птн 19:23:58  705251
>>705206
http://malisper.me/2015/08/05/debugging-lisp-part-4-restarts/
Аноним 01/04/16 Птн 20:34:54  705359
>>705251
Ага, этот бложик тоже читал.
Аноним 01/04/16 Птн 20:50:58  705378
https://github.com/vseloved/lisp-crash-ru
Аноним 02/04/16 Суб 00:06:03  705484
Сап, гайз. Я тут решил окончательно упороться и запилить маленький вебапп на лиспе. Насколько полноценны местные фреймворки? CSRF, JSON-RPC, REST, ORM и другие баззворды поддерживаются?
Аноним 02/04/16 Суб 00:52:11  705516
>>705484
Наркоман штолле сука? Пиши код блеять.
Аноним 02/04/16 Суб 10:32:27  705734
как вообще на вашем лишпе что-то серьезное писать?
это же половину времени будешь изобретать велосипеды, которые уже изобрели в други языках
Аноним 02/04/16 Суб 10:53:46  705759
>>705734
Попробуй библиотеками воспользоваться. Говорят, помогает от велосипедостроительства.
Аноним 02/04/16 Суб 12:36:07  705807
>>705206
чтобы понять и начать использовать как работают исключения в мейнстрим языках, нужно сломать голову
чтобы понять как работают продолжения, сопрограммы в альтернативных языках нужно тоже
а соответсвенно чтобы понять работу сигналов в лиспе нужно этот заеб перемножить один на другой..
Аноним 02/04/16 Суб 13:06:17  705816
>>705807
Пожалуй.
Аноним 02/04/16 Суб 14:58:29  705884
Музыкальный бамп.
https://github.com/byulparan/cl-collider
https://www.youtube.com/watch?v=JivNMDUqNQc&feature=youtu.be
Аноним 02/04/16 Суб 17:12:36  706007
http://picolisp.com/
https://habrahabr.ru/post/247965/
Лиспаны, что думаете насчёт этого странного, наркоманского язычка, именуемого пиколиспом? Вроде и из коробки всего полно, и ffi не замороченный, и веб-гуй пишется удобненько, и на ведро ставится без всяких танцев. Но какой-то он... ебанутый.
Аноним 02/04/16 Суб 19:10:19  706098
>>706007
Наркомания какая-то. В топку его.
Аноним 02/04/16 Суб 22:20:41  706292
>>706098
Мне кажется, что не так все однозначно. Надо бы придумать, где его можно применить.
Аноним 02/04/16 Суб 22:34:25  706315
>>706292
Но зачем? Хотя про ведро где почитать можно?
Аноним 02/04/16 Суб 23:52:03  706390
>>705188
Хули толсто, Clojure - самый живой Lisp, а JVM - самая популярная платформа, с ней и посредством Kawa (Scheme) с успехом поиграться можно.
Аноним 03/04/16 Вск 00:06:44  706400
>>706390
Уползи обратно в свой жава тред.
Аноним 03/04/16 Вск 00:47:58  706436
>>706390
Но кложура - не лисп. Это вообще не язык программирования, а такой хипстерский дсл для скриптования жавы. Специально для тех, кому надоело программировать на xml.
Аноним 03/04/16 Вск 01:11:11  706464
>>706400
>>706436
Лол. Понятно все с вами, ребята, уползаю в свой Scala-тред.
Аноним 03/04/16 Вск 01:22:29  706474
>>706464
Хорошо что ты знаешь своё место.
Аноним 03/04/16 Вск 01:28:59  706482
>>706464
Тебя и там за кложу ссаными тряпками закидают.
Аноним 03/04/16 Вск 02:17:04  706517
Добавил в шапку документацию по Emacs Lisp и выделил Racket в отдельный язык.
Аноним 03/04/16 Вск 17:58:51  706909
Как думаете, почему лисп потерял популярность в 90-2000?
Аноним 03/04/16 Вск 18:02:42  706917
>>706909
Упал с 2% до 1%? Ну хуй знает.
Аноним 03/04/16 Вск 18:15:40  706944
>>706909
Возможно, его вытеснили скриптопараши вроде перла, питона и пыха везде, где все возможности лиспа все равно были не нужны. В целом появляется все больше и больше специализированных языков и они утаскивают прогеров из метаязыков. А чтобы вытащить из жабы быдлокодера, ему еще нужно объяснить, зачем ему все эти фичи.
Аноним 03/04/16 Вск 18:22:23  706951
>>706944
Но как так вышло? Ведь было же сообщество. Куда оно проебалось?
Впрочем, пых питон и прочая дристня действительно гораздо более дружелюбны к новичкам.
Аноним 03/04/16 Вск 18:23:28  706953
>>706951
Похуй, пиши код.
Аноним 03/04/16 Вск 18:31:29  706965
>>706951
Возможно, это связано со смертью лисп-машин.
Аноним 03/04/16 Вск 18:36:47  706968
>>706965
Ты ебанутый, лисп-машины нахуй не нужны. Питономашин же нет.
Аноним 03/04/16 Вск 18:47:01  706976
>>706953
Так я пишу. Хочу просто больше народу в секту.
>>706965
Как и не появились джава-машины.
Аноним 04/04/16 Пнд 02:13:55  707271
>>706976
Форт-машины зато появились, предлагаю начать на них фапать.

http://www.greenarraychips.com/
Аноним 04/04/16 Пнд 02:18:52  707273
(cons vsl '(not dead))
Аноним 04/04/16 Пнд 07:51:46  707315
Поцоны, поясните за пик >>649344 (OP)
Зачем лисп похитил питона?
Аноним 04/04/16 Пнд 22:03:14  707940
>>707315
Потому что питон зло, очевидно.
Аноним 04/04/16 Пнд 23:56:34  708050
Накидайте видосиков по лиспу.
Аноним 05/04/16 Втр 14:50:51  708461
>>708050
Накидал, проверяй
Аноним 05/04/16 Втр 15:47:09  708509
>>708461
Но за щекой ничего нет. Ты правильно хоть накидал?
Аноним 05/04/16 Втр 18:14:16  708633
Когда окончательно родят R7RS-large?
И когда запилят единый репозиторий библиотек с пакетным менеджером для всех реализаций схемы?
Спасибо.
Аноним 05/04/16 Втр 18:32:40  708645
>>708642
Ебать ты шизофреник.
Аноним 05/04/16 Втр 18:34:39  708647
>>708633
Есть мнение, что не нужно - все живые Схемы обзавелись собственными расширениями над стандартами.
Аноним 05/04/16 Втр 18:44:37  708654
>>708633
>И когда запилят единый репозиторий библиотек с пакетным менеджером для всех реализаций схемы?
Лол. Никогда. Это ж схема.
Аноним 05/04/16 Втр 18:52:11  708658
>>708647
Это путь в никуда.
Аноним 05/04/16 Втр 20:59:30  708783
>>708658
Путь вникуда - это сравнимые реализации одного стандарта.
Аноним 05/04/16 Втр 23:39:04  708936
>>708783
Да. Но так уж случилось, что реализаций несколько. Исправить это можно единым репозиторием библиотек.
Аноним 06/04/16 Срд 01:21:53  708995
>>708936
Просто смирись, что Chicken Scheme это один язык, а Guile это другой.
Аноним 07/04/16 Чтв 15:24:35  710181
пацаны, извечный вопрос, почему ни один диалект lisp не пригоден для промышленного использования? Где фреймворки? Где комьюнити? Этого всего нет.
Аноним 07/04/16 Чтв 15:32:28  710186
>>710181
1. Потому что ты школьник и не можешь в Google.
2. Потому что 90 процентов программистов - долбоебы, которые не могут в SICP.
Аноним 07/04/16 Чтв 16:59:22  710230
>>710186
> Где комьюнити?
> Потому что 90 процентов программистов - долбоебы,
С таким подходом коммьюнити и не будет.
Аноним 07/04/16 Чтв 19:02:13  710315
>>710181
Общелисп и есть самый настоящий промышленный язык. Учись пользоваться гуглом.
Фреймворки и сообщество есть, но немногочисленгое. Но не количество главное.
Аноним 08/04/16 Птн 22:10:20  711370
>>710230
так никому коммунити уровня тупых жабаиндусов или go-детей и ненужно
Аноним 09/04/16 Суб 13:19:19  711778
Реквестирую лисп челендж.
Аноним 09/04/16 Суб 14:28:50  711858
14602013302120.png (207Кб, 338x427)
Как сделать чтобы показывало цвет в емаксе?
Аноним 09/04/16 Суб 14:36:12  711868
>>711858
Гуглом пользоваться научись, полуебошный.
https://julien.danjou.info/projects/emacs-packages#rainbow-mode
Аноним 09/04/16 Суб 14:37:59  711870
>>711868
Спасибо, пидор.
Аноним 09/04/16 Суб 18:54:27  712121
>>711778
Я бы за, но ближайшую неделю поучаствовать не смогу
Аноним 09/04/16 Суб 20:22:35  712185
>>712121
Вообще я просил придумать какую-нибудь задачу, а не предлагал соревнование.
Аноним 09/04/16 Суб 21:09:36  712203
14602253762540.png (34Кб, 545x421)
Угадай мелодию.
Аноним 10/04/16 Вск 10:45:11  712528
>>712203
Подмосковные вечера, давай сложнее.
Аноним 10/04/16 Вск 12:00:23  712596
14602788232960.png (15Кб, 279x284)
>>712528
Аноним 10/04/16 Вск 14:31:38  712710
>>712528
В музыкалке учился что ли?
Аноним 11/04/16 Пнд 03:54:18  713525
Есть ли возможность написать код на Lisp и залить в Ардуино?
Аноним 11/04/16 Пнд 04:03:31  713527
Я слышал, что в лиспе можно накодить функцию, которая будет способна строить другую функцию, а потом ее можно исполнять. Где это искать? Подскажите.
Аноним 11/04/16 Пнд 05:40:03  713537
>>713527
Лол, это называется "макрос".
defmacro гугли
Аноним 11/04/16 Пнд 05:42:39  713538
>>713527
Еще как вариант это называется "замыкание": http://letoverlambda.com/textmode.cl/guest/chap2.html

Но тут функция не совсем строится.
Типичный лиспер Аноним 11/04/16 Пнд 10:14:55  713593
14603588953260.jpg (21Кб, 368x638)
Аноним 11/04/16 Пнд 10:53:56  713617
>>713537
>>713538
(defun thank-you () (format t "спасиб"))
Аноним 11/04/16 Пнд 11:51:10  713650
>>713593
(cons 'vsl '(not dead))
Аноним 11/04/16 Пнд 12:14:00  713682
14603660409380.png (16Кб, 578x129)
>>713650
>'vsl '(not dead)
Спорное утверждение.
Аноним 11/04/16 Пнд 12:22:12  713688
Кто-нибудь интересовался диалектами на которых до стандартизации лиспа пытались пилить ИИ?
Аноним 11/04/16 Пнд 13:14:46  713716
>>713525
А чо нет-то.
Аноним 11/04/16 Пнд 15:10:43  713796
>>713688
Ты про маклисп что ли?
Аноним 11/04/16 Пнд 16:47:17  713866
>>713796
Интерлисп еще, например.
Аноним 11/04/16 Пнд 17:14:24  713883
>>713866
>>713796
Они выглядят весьма похожими на общелисп или елисп.
Аноним 11/04/16 Пнд 17:25:15  713894
>>713883
>Критики нового стандарта указывали на его раздутость и чрезмерное внимание, уделённое практическим требованиям, что привело к нарушению «функциональной чистоты» Лиспа и увеличению объёма поддерживающих его Лисп-систем.

>Более существенно то, что Интерлисп базируется на динамическом связывании, тогда как все новые версии Лиспа — статические.

Кто-нибудь пояснит что за "функциональная чистота" такая нарушилась после стандартизации и что за динамическое связывание было вместо которого запилили статические?
Аноним 11/04/16 Пнд 17:43:59  713904
>>713894
Может быть, под статическим связыванием подразумевается лексическая область видимости?
А функциональной чистотой, насколько мне известно, ни маклисп, ни интерлисп никогда не отличались.
ХЕЛП Аноним 12/04/16 Втр 16:35:01  714630
14604681016220.jpg (42Кб, 453x604)
Emacs подсвечивает код как Emacs Lisp, не могу заставить подсвечивать как Common Lisp.

Та же ситуация с Flycheck.
Аноним 12/04/16 Втр 19:14:29  714753
>>714630
Выкини emacs.
Аноним 12/04/16 Втр 21:28:19  714908
>>714630
Заскринь модлайн.
Аноним 13/04/16 Срд 02:20:24  715234
Антош, где-то видел список основных операторов (что-то около 12) на которых написано все остальное. Подскажи пожалуйста - никак не могу найти. Хочу писать только на них
Аноним 13/04/16 Срд 10:09:57  715323
>>715234
Ебанутый что-ли?
http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm
Аноним 13/04/16 Срд 12:03:07  715372
>>715323
Спасибо!. Не ругайся. Нюфак же
Аноним 13/04/16 Срд 12:06:08  715373
>>715323
Хотя я видел другой список. Там точно был cond
Аноним 13/04/16 Срд 12:57:48  715415
>>715373
Ну так для какого тебе диалекто то надо?
http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Special-Form-Syntax.html
Аноним 13/04/16 Срд 13:17:51  715436
>>715415
В общем посмотрел я на определения функции cond when and в sbcl. и все они написаны с использованием только if. Получается я могу только на if все писать. Вот же откровение.
Аноним 13/04/16 Срд 13:19:48  715438
>>715373
cond это не "основной" оператор, а сахарок для if, реализующийся на макросах. Как в лиспе, так и в схеме.
Аноним 13/04/16 Срд 13:28:08  715444
>>715438
Ага, я понял.>>715436
Аноним 13/04/16 Срд 16:21:28  715613
Научите вставлять лиспокод в другой язык, например, Питон и чтобы оно работало. Или хотябы киньте ссыль на хороший гайд по теме для ньюфага.
Аноним 13/04/16 Срд 16:35:26  715625
Как сделать так, чтобы одна функция обрабатывала данные, поступающие в реальном времени, обрабатываемые параллельно 2(или больше) другими функциями? Я слышал, что Лисп может в подобную параллельную обработку или что-то такое.
Аноним 13/04/16 Срд 16:54:31  715652
>>715613
http://www.gnu.org/software/guile/
>>715625
http://www.cliki.net/concurrency
Аноним 13/04/16 Срд 17:53:07  715731
14605591870780.jpg (283Кб, 1821x1290)
>>714630
Всё ебать я разобрался, спасибо пидоры за поддержку.
Аноним 13/04/16 Срд 17:53:47  715733
>>715731
> 2017
> emask
Аноним 13/04/16 Срд 17:54:07  715734
>>715731
Ты уже большой. Видишь, сам справился.
Аноним 13/04/16 Срд 19:19:06  715840
У меня какая-то иррациональная тяга к лиспу, как у некоторых русских к сербам. Что со мной?
Аноним 13/04/16 Срд 19:20:10  715842
>>715840
Ты смайлодаун.
Аноним 13/04/16 Срд 19:30:53  715858
>>715842
Маловероятно. А ты хуй)
Аноним 13/04/16 Срд 19:31:10  715859
>>715840
Потому что лучше интерактивной разработки пока ничего не придумали, очевидно.
Аноним 13/04/16 Срд 19:33:03  715862
>>715859
Она есть дохрена где кроме лишпа.
Аноним 13/04/16 Срд 19:33:39  715863
Что думаете про http://www.buildyourownlisp.com/ ?
Аноним 13/04/16 Срд 19:35:21  715866
>>715863
>Learn C
Лерн си ан билд ватэвер ю факинг вонт. Бат нобади байс ит.
Аноним 13/04/16 Срд 19:37:14  715871
>>715862
Например?
Аноним 13/04/16 Срд 19:38:09  715874
>>715871
REPL в любой скриптопараше присутствует. Это как минимум.
В не-скриптопараше тоже нередок.
Аноним 13/04/16 Срд 19:38:11  715875
>>715863
Для этих вещей у нас есть хаскель.
Аноним 13/04/16 Срд 19:38:44  715876
>>715874
Не путай репл с интерактивной разработкой. Это не одно и то же.
Аноним 13/04/16 Срд 19:38:59  715878
>>715876
В чём разница?
Аноним 13/04/16 Срд 19:41:12  715885
>>715878
В том что при интерактивной разработке ты наслаиваешь приложение постепенно, как будто создаешь скульптуру. Ты мгновенно получаешь обратную связь и работаешь с образом своего приложения, а не работаешь по стандартному циклу "Отредактировал, сохранил, перезапустил". Реплы во всем что я пробовал кроме лиспа годятся только для проверки тривильных вещей, а не для полноценной разработки.
Аноним 13/04/16 Срд 20:07:03  715927
>>715885
Говно ваша интерактиваня разработка. На нормальной статике в нормальной можно написать целый модуль без твоих циклов "Отредактировал, сохранил, перезапустил", потом этот модуль собрать, и он будет как положено работать.
Аноним 13/04/16 Срд 20:09:49  715935
>>715927
Глядите-ка, жабомакака подтянулась, которая по 3 минуты ждет пока у неё хэлло-ворлд запустится.
Аноним 13/04/16 Срд 20:12:47  715936
>>715935
Ну да, жабка же единственная статика, и нормальная статика, ничего слаще редьки ты не пробовал. Scala компилирутеся в 2 раза дольше
Аноним 13/04/16 Срд 20:14:07  715938
>>715935
Зато фрактал на клиспе работате моментально :3
Аноним 13/04/16 Срд 20:16:02  715944
>>715938
>фрактал
факториал или фибоначчи, че там у вас за хеловорлд
Аноним 13/04/16 Срд 20:20:32  715955
Вскукарек :: [кококо] -> вскукарек
Вскукарек<кококо> вскукарек = new Вскукарек<кококо> ();
Аноним 13/04/16 Срд 20:21:34  715956
>>715955
Это хачкель или жаба?
Аноним 13/04/16 Срд 20:23:20  715958
>>715955
>(cons 'вскукарек '(кок покпок))
Че сказать то хотел?
Аноним 13/04/16 Срд 20:31:02  715971
>>715958
(with-вскукарек
(ко-ко-ко))
Аноним 13/04/16 Срд 21:25:51  716002
>>715733
Если не emask, то кто?
Аноним 13/04/16 Срд 21:29:22  716006
>>716002
Ничего, так и приходится жрать это говно =(
Аноним 13/04/16 Срд 21:29:38  716007
>>716006
SICP закончу и выкину к ебанной матери.
Аноним 14/04/16 Чтв 01:17:46  716197
>>716006
>>716007
Да ты же говноед.
Аноним 14/04/16 Чтв 03:46:11  716226
>>715613
Для вставления в питон есть Hy в шапке.
Аноним 14/04/16 Чтв 14:24:06  716500
(funcall (if (> (random 10) 5) #'+ #'-) 3 4)
VS
((if (> (rand 10) 5) + -) 3 4)

Дискасс.
Аноним 14/04/16 Чтв 16:02:47  716566
>>716500
бля, ну это специфический момент, тут-то не про синтаксис, а про устройство интерпретатора(одно окружение или несколько),
Аноним 14/04/16 Чтв 16:11:07  716570
>>716566
Это все тот же всем настоебавший lisp-1 vs lisp-2.
Лично мне больше нравится явный funcall, потому что я вообще не с первого раза вдуплил в середине другого куска кода что ((XYNTA) .!)))345)) это вызов функции собранной в результате вычисления.
Аноним 14/04/16 Чтв 19:03:43  716768
>>716570
так а что же еще, но мне (function +) (или во что там раскроется #'+) кажется немного хуетой, вообще, конечно дело вкуса
Аноним 15/04/16 Птн 02:20:10  717261
>>715958
>(setq вскукарек '(кок покпок))
Аноним 15/04/16 Птн 12:16:58  717428
Лиспаны, а макросы, которые могут создавать макросы это только в лиспе так можно или в других языках тоже есть подобное?
мимо-могу-немного-в-питон
Аноним 15/04/16 Птн 16:31:20  717660
>>717428
Любые макросы могут создавать макросы.
Аноним 15/04/16 Птн 17:04:06  717692
>>717428
Можешь генерировать macrolet-формы, например.
Аноним 15/04/16 Птн 18:15:32  717764
14607333327240.png (26Кб, 753x261)
>>717660
Сам себе отвечу.
http://stackoverflow.com/questions/2429240/c-preprocessor-macro-defining-macro
Аноним 15/04/16 Птн 18:27:07  717776
Ответьте без проверки через репл, чем равно значение:
(let (#'42) (+ . #'5))
Аноним 15/04/16 Птн 19:43:05  717832
чтяднт?
Надо выделить ЦЕЛЬ в ((1(2(3 4 цель))
вот так все работает (car (cdr (cdr (car (cdr (car (cdr (car '((1(2(3 4 цель))))))))))))
Но когда я пытаюсь в сокращение
(caddadadar '((1(2(3 4 цель)))))
то
* (caddadadar '((1(2(3 4 цель)))))

debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {1002A8AEE3}>:
The function COMMON-LISP-USER::CADDADADAR is undefined.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.

(SYMBOL-FUNCTION CADDADADAR)
0]
Аноним 15/04/16 Птн 19:47:50  717842
>>717832
и что тебя удивляет? caddadadar - неопределенная функция, вложенные c*r определены до 4 уровня http://www.lispworks.com/documentation/HyperSpec/Body/f_car_c.htm
Аноним 15/04/16 Птн 19:50:13  717847
>>717842
Шпасибо, т.е. это никак c*r не сократить? Странно, что в учебнике задание еще и сократить.
Аноним 15/04/16 Птн 19:58:39  717856
>>717847
можно (caddar (cdadar '((1(2(3 4 цель)))))), а можно и самому определить
(defun caddadadar (x) (car (cdr (cdr (car (cdr (car (cdr (car x)))))))))
Аноним 15/04/16 Птн 20:11:06  717865
>>717856
(destructuring-bind ((_ (_ (_ _ x)))) '((1 (2 (3 4 цель)))) x)
Аноним 15/04/16 Птн 20:13:00  717866
>>717865
Точнее вот так
(destructuring-bind ((nil (nil (nil nil x)))) '((1 (2 (3 4 цель)))) x)
Аноним 15/04/16 Птн 20:15:51  717871
14607405514810.png (172Кб, 957x1079)
Для тех, кого тоже заебывает вспоминать директивы формата: C-c C-d ~
Аноним 15/04/16 Птн 20:31:28  717878
>>717866
та я вообще на общелиспе мало писал, больше scheme
------------
>>717856
Аноним 15/04/16 Птн 21:25:24  717898
>>717776
Либо нил, либо ошибка.
Аноним 15/04/16 Птн 21:32:46  717904
>>717776
>>717898
ну, я вот думаю, 47, логика такая
(let (#'42) (+ . #'5))
(let ((function 42)) (+ . (function 5)))
(+ . (42 5))
(+ 42 5)
47

А вообще, поясни потом правильный ответ, и как до него дойти
Аноним 15/04/16 Птн 23:06:15  718004
>>717904
Все правильно думаешь, хуле уж тут.
Эвалишь код, потом эвалишь + и все становится понятно.
Аноним 15/04/16 Птн 23:10:29  718010
Хочу обновить slime-proxy, чтобы РЕПЛ для parenscriptа юзать. Все правильно делаю?
Аноним 16/04/16 Суб 01:31:18  718130
>>717856
>(caddar (cdadar '((1(2(3 4 цель))))))
Так и есть скорее всего, ибо на том месте про определение функций в помине нет.
Аноним 16/04/16 Суб 12:10:12  718284
А покажите свои конфиги на emacs.
Аноним 16/04/16 Суб 12:24:04  718295
Какой способ именования лучше: "foo?" или "is-foo"?
Первый вариант чуть-чуть лаконичней, но я спотыкаюсь на его чтении. Второй вариант длиннее, но в голове его удобно проговаривать — "из фу" он и есть "из фу", пауз при чтении не возникает.
Что является стандартом и почему?
Аноним 16/04/16 Суб 12:29:14  718298
>>718284
У меня spacemacs. Конфиг показать не могу, т.к. ноута под рукой нет, но там и смотреть-то практически нечего.
Аноним 16/04/16 Суб 12:33:32  718302
>>718295
foo-p или foop
https://google.github.io/styleguide/lispguide.xml?showone=Predicate_names#Predicate_names
Аноним 16/04/16 Суб 12:35:18  718303
>>718295
Или если речь о схеме, то, кажется, общепринятым является foo?
Аноним 16/04/16 Суб 13:27:00  718327
>>718295
Это тебе вот такое дерьмо удобно проговаривать: (if is-foo) ?
is-* имеет смысл как свойство объекта.
(if shit.isTasty) ; читается нормально

Оба эти варианта читаются отлично:
(if foo?)
(if foop)
Аноним 16/04/16 Суб 15:09:09  718415
Я занимаюсь по http://progbook.ru/lisp/409-hyuvenen-mir-lispa-tom-1-vvedenie-v-yazyk-lisp.html
Мир Лиспа. Том 1. Введение в язык Лисп и функциональное программирование
В отличии от Practical Common Lisp там практические примеры после каждой главы и подача материала легко усваивается. Что скажите про нее? Щитаю, что она оптимальна для ньюфага.
Аноним 16/04/16 Суб 15:24:06  718421
>>718415
PCL не для ньюфагов, а для тех кто знаю как программировать впринципе, хочет выучить CL.
Аноним 16/04/16 Суб 15:38:26  718434
Схемачи, почему этот код не запускается на линуксе?

https://ideone.com/hESYOY
Аноним 16/04/16 Суб 15:59:19  718444
>>718434
https://ideone.com/WUgQli

В рекурсивном вызове accumulate проебал combiner
Аноним 16/04/16 Суб 16:15:15  718461
>>718444
Все равно ошибка.

default-load-handler: expected a `module' declaration
found: something else
in: #<path:/root/Documents/SICP/1.32/1.32.scm>
context...:
standard-module-name-resolver
Аноним 16/04/16 Суб 16:16:28  718462
>>718461
Запускаю так: ./1.32.scm
Аноним 16/04/16 Суб 16:43:20  718479
>>718462
хз, с raket не работал, мб сверху, после
#!/usr/bin/racket
написать
#lang racket
Аноним 16/04/16 Суб 16:48:26  718485
>>718479
Но я ж хочу использовать интерпретатор r5rs.
Аноним 16/04/16 Суб 16:49:15  718488
>>718479
Надо же, это сработало.
Аноним 16/04/16 Суб 16:51:47  718491
>>718485
так задание же из sicp, там и mit-scheme подойдет(с ней sicp и проходил в свое время)
Аноним 16/04/16 Суб 17:55:35  718536
https://itch.io/jam/spring-2016-lisp-game-jam
Аноним 17/04/16 Вск 16:03:23  719246
Поясните за #. макрос. Читаю спеку и не понимаю, нахуя оно нужно.
Аноним 17/04/16 Вск 16:12:29  719253
14608987500170.jpg (43Кб, 600x415)
Аноним 17/04/16 Вск 16:14:19  719255
>>719246
Вроде это для макросов ридера, т.е. переопределение того, как текст преобразуется в s-exp, например, можносделоть инфиксную арифметику и т.д..
Аноним 17/04/16 Вск 16:23:02  719260
>>719253
Пропущеная скобочка это не шутки.
Аноним 17/04/16 Вск 17:07:14  719297
>>719255
https://github.com/quickdocs/quickdocs-updater/blob/master/quickdocs-updater.asd

Вот пример использования. Нахуя оно там?
Аноним 17/04/16 Вск 17:53:45  719329
>>719297
Ну а как ты сделаешь чтобы квадратная скобка преобразовывалась в #( без макросов ридера?
Или тебя что-то конкретное смущает? #\ = символ
Аноним 17/04/16 Вск 19:30:44  719458
>>719329
Я спрашиваю про конкрентный макрос: #.
Как им пользоваться и нахуя он нужен.
Аноним 17/04/16 Вск 21:34:24  719638
>>719458
А, я хз, похоже на сокращенный eval
Аноним 17/04/16 Вск 22:07:13  719671
>>719246
Для вычисления выражения на стадии чтения s-exp'а.
>>719297
Читает строку из файла и подставляет её в выражение, а потом уже раскрывается макрос defsystem
Аноним 17/04/16 Вск 22:31:16  719694
>>719671
Ага, я так примерно и понял. Спасибо.
Аноним 18/04/16 Пнд 19:23:37  720306
за спиной пара интерпретаторов на scheme, недописанные веб сервер на ней же, ворох других мелких проектов, стоит ли вкатываться в Common Lisp? Если да, с чего лучше стартануть? Интересуют темы метаязыковой абстракции, ии, возможно, анализа евстественного языка
Аноним 18/04/16 Пнд 21:50:21  720477
>>720306
Конечно, стоит, ведь в схеме жизни нет. Даже по меркам лиспосообщества.
Аноним 18/04/16 Пнд 21:53:20  720481
>>720306
>с чего лучше стартануть?
С On lisp, например.
Аноним 19/04/16 Втр 02:15:24  720688
Я посматриваю за тредом иногда. Пиздец, почему такой долбоебизм царит?

Кложа/Clojure охуенна. Причин несколько:
- очень развитое комьюнити
- иммутабельные структуры данных, что избавляет от рейс кондишенов и позволяет удобно писать асинхронный код
- core/async, stm, атомарность, промисы
- Clojurescript, где комьюнити тоже совершенно охуенное: есть ом, реагент, куча других либ и биндингов
- Отличные макросы (да, есть и в CL)
...
Список достоинств можно только продолжать.
Короче, реально писать не на Кложе вообще смысла не вижу. Главный недостаток это JVM с невозможностью реализовать tail call elimination, stop the world'ом (для сравнения Ерланг/Эликсир -- в BEAM такого нет, там каждый актор заводит свой хип) и долгим стартом (особенность JIT в JVM).

И да, если вам понадобятся Акторы, то есть вполне рабочие биндинги к Акке.

В общем, программисты выбирают Кложу, а диванные кукаретики продолжают срать под себя. Хуйню тут развели блядь какую-то.
Аноним 19/04/16 Втр 02:32:19  720700
>>720688
Тебе в жаваскрипт тред.
Аноним 19/04/16 Втр 12:13:42  720859
>>720688
Опять набрасываешь, ирод?
На кложе никто не пишет, кроме хипсторов-вебпетухов. И то там кложескрипт, а не сама кложа.
Все преимущества, что ты перечислил, сводятся на нет одним базовым принципом кложи - плотной интеграцией в хост-язык, которые имеют совершенно иную, нихуя не совместимую с лиспом идиоматику. Поэтому код на кложе, как правило, представляет из себя ту же яву/яваскрипт, но с чуть отличающимся синтаксисом и немного подсахаренный.
Аноним 19/04/16 Втр 12:44:02  720877
14610590425920.jpg (30Кб, 480x360)
>>720688
Не распинайся, тут сидят зашоренные шизики, для которых всё что было после 80х - дохуя сложна, нинужно и нипанятна.
Аноним 19/04/16 Втр 12:47:17  720879
>>720877
лол пририсуйте туда эмблему кложи, а ебло замените на маккарти
Аноним 19/04/16 Втр 14:44:25  720956
>>720688
>>720688
> Главный недостаток это JVM с невозможностью реализовать tail call elimination
Используй loop-recur, он компилируется в цикл
> stop the world'ом
Для больших хипов есть Zing VM от Azul
> (для сравнения Ерланг/Эликсир -- в BEAM такого нет, там каждый актор заводит свой хип)
Если у тебя есть большой кусок данных, то он всё равно должен хранится в хипе какого-то актора, смекаешь?
> И да, если вам понадобятся Акторы, то есть вполне рабочие биндинги к Акке.
Нахуй акторы, есть core.async
Аноним 19/04/16 Втр 15:26:06  720995
>>720688
Но то же самое есть и в общелиспе. Только в отличие от кложи он является языком полноценным, а не дырявойыми оберткойами (таки три платформы - три разных языка) вокруг жавы, жс и додиеза.
Аноним 19/04/16 Втр 16:42:38  721051
>>720956
>то он всё равно должен хранится в хипе какого-то актора
В ерлаше бинари >64КБ идут в отдельный хитровыебанный бинарный хип.

>Нахуй акторы, есть core.async
Это неудобно. А все кто любит чтоб было удобно берут Okku.

>>720995
Общелисп - обычная переусложнённая императивная говнина с макросами.
Аноним 19/04/16 Втр 18:04:14  721132
>>721051
> В ерлаше бинари >64КБ идут в отдельный хитровыебанный бинарный хип.
Что такое "бинари"? Большой вектори или мапа это "бинарь"? И какой в этом бинарном хипе GC алгоритм?
> Это неудобно.
Шта? По-твоему акторы удобнее чем CSP?
Аноним 19/04/16 Втр 18:05:51  721133
>>720995
> Но то же самое есть и в общелиспе.
А как насчёт
> - очень развитое комьюнити
Аноним 19/04/16 Втр 20:02:08  721220
>>721133
Вся его развитость заканчивается на лойсах на гитхубе, участии в хипстохакатончиках и, в редких случаях, запиливании недоделанной оберточки над жава/жс-библиотечкой.
Вот у хаскела сообщество можно назвать развитым, там действительно наблюдается движение.
Аноним 19/04/16 Втр 21:22:15  721307
>>721132
Что такое "бинари"?
Бинарный тип данных.
> Большой вектори или мапа это "бинарь"?
Нiт, но при желании их обоих можно скастовать в бинари. Ну или получить такие сразу, из сети/файла/мемори.
>И какой в этом бинарном хипе GC алгоритм?
Висят до тех пор, пока на них не останется ссылок откуда бы ни было. В остальном как обычно.

>Шта? По-твоему акторы удобнее чем CSP?
Разумеется. Анониманя связь по каналам говно, работать без примитивов процесс/узел крайне неудобно. Модель акторов - это самый общий конкурентный концепт, средствами которого можно выразить большинство остальных, тот же ССS или CSP, обратное невозможно.
Аноним 19/04/16 Втр 21:37:05  721335
>>721307
> Модель акторов - это самый общий конкурентный концепт, средствами которого можно выразить большинство остальных
По твоей логике GOTO - самый удобный концепт управления ходом программы, потому что через него можно выразить все остальные.
Аноним 19/04/16 Втр 22:10:54  721357
Анончики, так уж вышло, что для экзамена мне придётся выучить autoLisp. Посоветуйте годноты.
Алсо, сам уже больше года пилю бэкенд на дотнете, специальность обучения интересная, вот и не ливаю из универа
Аноним 20/04/16 Срд 00:39:33  721462
>>721357
Врядли здесь кто-то из анонов хоть раз щупал этот автолисп.
Если не найдется нормальной литературы по автолиспу, попробуй поверхностно проштудировать pcl (ссылки в шапке), чтобы раобраться что да как.
Аноним 21/04/16 Чтв 23:55:22  723154
А я вот начал на работке на лиспе лабать. Полет нормальный.
Аноним 22/04/16 Птн 00:16:38  723167
>>723154
Подробности?
Аноним 22/04/16 Птн 00:25:44  723173
>>723167
Ну надо было сделать парсер одной фигни. Залабал на общелиспе. Оче годно. Плюс пробую тут на общелиспе селениум насиловать. Тоже норм вроде.
Аноним 22/04/16 Птн 00:26:33  723175
>>723173
Парсер, кстати, модный. Интерфейс на clack + ningle + cl-markup + parenscript + css-lite
Аноним 22/04/16 Птн 00:38:53  723181
>>723175
А чому так много либ для одного парсера? В Clojure вот один Instaparse справляется.
Аноним 22/04/16 Птн 00:47:07  723185
>>723181
Это либы для интерфейса. Сам парсер юзает dexador + plump + jsown + cs-csv
Аноним 22/04/16 Птн 21:58:08  723992
>>705167 (OP)
Запилил себе иконку уютную - делюсь, мало ли, пригодится кому.
Тред про Emacs проебался куда-то, потому сюда.
Аноним 22/04/16 Птн 21:58:25  723994
14613515052700.png (281Кб, 900x900)
>>723992
Аноним 22/04/16 Птн 22:16:26  724010
Допилю все методы и отправлю в квиклисп. Все правильно делаю?
https://github.com/TatriX/cl-selenium-webdriver
Аноним 22/04/16 Птн 23:34:39  724086
>>724010
Этот селениум через вебапи работает шоле?
Аноним 23/04/16 Суб 00:03:31  724104
>>724086
Это биндинги к Selenim Server'у
Работает через REST API, да.
Аноним 23/04/16 Суб 22:27:48  724894
14614396689700.jpg (21Кб, 263x192)
Мне надо построить массив, привязанный к пикселям в виде 3дэ сферы, а также чтобы в зависимости от функций, изменяющих числа массива менялся цвет тех пикселей, что привязаны к массиву. Что посоветуете для всей этой графики на лиспе?
Аноним 24/04/16 Вск 12:00:07  725220
>>724894
cl-sdl2, sdl2kit, cl-opengl
Аноним 25/04/16 Пнд 07:39:38  726129
>>725220
Ему чето типа plotlib нужно, а не свой движок писать.
>>724894
Глянь вон там http://cliki.net/plotting
Аноним 25/04/16 Пнд 21:24:28  726923
Гайс, помогите плиз. Нужно сделать лабу по автолиспу, а в нем я не особо шарю. Достаю из файла строку, например "-1 10 9.87 -4.08". Как мне сделать из нее лист чисел, чтобы потом их можно было отсортировать по знаку, большее/меньшее, целые, дробные и тд.
Аноним 25/04/16 Пнд 22:10:52  726962
>>726923
#include <common-lisp.h>
Ну и дальше пишешь на общелиспе.
Аноним 25/04/16 Пнд 22:48:12  726999
>>726962
Надо именно автолиспом сделать
Аноним 25/04/16 Пнд 23:26:11  727041
>>726923
Дай ссылку на документация, сходу не гуглится.
Аноним 25/04/16 Пнд 23:32:58  727048
>>727041
>>727041
Не понял, что именно надо?
Аноним 25/04/16 Пнд 23:33:42  727052
Emacs'еры использующие org-mode тут есть?
Скиньте свои custom agenda или порекомендуйте хороших, а то говно получается.
Аноним 25/04/16 Пнд 23:49:50  727068
>>727048
Я имел в виду что-то типа общелисповского clhs ( http://www.lispworks.com/documentation/HyperSpec/Front/index.htm ),
Но уже нагуглил вот это http://stackoverflow.com/questions/15393797/lisp-splitting-input-into-separate-strings (последний ответ). Почти твоя задача, осталось только строки к числам привести. Код там, конечно, - говно а мож просто автолисп - говно, но суть должна быть понятна.
Аноним 26/04/16 Втр 20:54:07  727896
Открыли ChezScheme
Аноним 26/04/16 Втр 20:54:26  727897
>>727896
https://github.com/cisco/ChezScheme
Аноним 26/04/16 Втр 21:41:04  727932
>>727896
Ну и хуй с ним?
Аноним 26/04/16 Втр 22:15:51  727964
Тут ни кто для org-mode не пишет лисп-скрипты?
Аноним 26/04/16 Втр 23:12:40  728022
>>727964
Там столько всего из коробки, что не приходится. Что нужно-то?
Аноним 27/04/16 Срд 00:11:56  728067
Антохи, дошел до рисовалок в SICP'е, а DrRacket не могет в элементарные рисовалки. Че делать?
Аноним 27/04/16 Срд 00:24:55  728074
>>727964
Я писал для org-drill. И то не скрипт, а просто интерактивную функцию.
Аноним 27/04/16 Срд 00:25:37  728077
>>728067
Как не могет? Вроде в последний раз мог
Аноним 27/04/16 Срд 00:45:31  728088
>>728077
скачал sicp.plt пакет, теперь DrRacket могет в beside/below, но все равно не могет в wave/rogers
Аноним 01/05/16 Вск 03:29:32  731724
(bump)
Аноним 01/05/16 Вск 19:21:59  732029
>>728088
rogers тебе не понадобится, он там для примера
wave напиши сам, мудак чтоли?
Аноним 01/05/16 Вск 23:46:42  732187
>>705206
Нихуя там сложного нет.

Просто функции, которые вызываются в динамическом контексте.

Что такое динамический контекст? Это список, хранящийся в динамической переменной, которая перебинживается дополненной cons-ячейкой каждый раз когда ты делаешь handler-bind (или там restart-bind для рестартов).

Ниже про сигналы. Про рестарты +- все то же.

В списке хранятся пары typespec -> функция.

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

Что происходит при signal? Она просто берет, проходится по списку, соответственно снизу вверх, получается, и вызывает все функции, для которых (typep <кондишн который ты ей дал> <соответствующий typespec в паре>) возвращает не nil.

Что происходит при warn? То же самое, только если не произошла раскрутка стека, функция еще и пишет message кондишна в stderr.

Что происходит при error? То же самое, только если не произошла раскрутка стека, выполняется функция invoke-debugger, которая зависит от реализации.

Что такое раскрутка стека? Это процесс нелокального выхода из точки в коде. Т.е. это операторы throw, return-from и go. В процессе раскрутки стека снизу вверх вызываются защищенные формы unwind-protect.

handler-case отличается от handler-bind тем что функции-обработчики он за тебя генерирует сам, и в конце каждой помимо твоего кода генерирует оператор return-from, т.е. инициирует раскрутку стека к текущему блоку.
Аноним 02/05/16 Пнд 00:07:00  732198
>>732187
Ебать ты наркоман. Представляю тебя плешивым дрыщем, сидящем в 6 сантиметровых очках на бабкином стуле и упарывающемся скобками.
Аноним 02/05/16 Пнд 00:24:00  732205
14621378402760.jpg (182Кб, 1280x859)
>>732198
немного не угадал
Аноним 02/05/16 Пнд 00:30:51  732210
>>732205
Да, про очки ошибся. В остальном все сходится.
Аноним 02/05/16 Пнд 00:33:00  732211
14621383801410.jpg (111Кб, 960x960)
>>732210
попизди мне тут
Аноним 02/05/16 Пнд 01:49:03  732224
>>732205
>>732211
Поймаю в Бостоне - ебальник разобью. Хотя стоп, не поймаю, тебя же не возьмут в джетбрейнс ОПЯТЬ, ХАХАХА.
jdevelop
Аноним 02/05/16 Пнд 02:06:54  732228
>>732224
Воу воу кто ето, ето бостонский алкаш на связи!
Аноним 03/05/16 Втр 21:03:43  733468
Господа, что не так у меня в сорусе?

https://ideone.com/NEDXM1
Аноним 03/05/16 Втр 21:56:50  733504
>>733468
Очевидно что у тебя нет так, это Scheme, а не Common Lisp
Аноним 03/05/16 Втр 22:12:01  733514
>>733468
25 строка
>>(lambda (x) (x))
Тут ты не возвращаешь x, а вызываешь его. Правильно будет
>>(lambda (x) x)
Аноним 04/05/16 Срд 17:28:07  734250
>>732211
love5an, ты шоле?
Аноним 06/05/16 Птн 02:34:38  735623
>>734250
он
Аноним 06/05/16 Птн 15:57:25  736019
Привет, lisp'аны. В общем, я читал SICP, делал задачки, что-то получалось. В общем, такой вопрос: я уже прочитал 3 главу целиком, перешел к 4 и ничего не понимаю. Точнее, если напрягаюсь, то понимаю, но мне стало неинтересно. Есть ли смысл читать после 3 главы? Отпишитесь, а то я не знаю, как-то жалко бросать начатое, но в главе про интерпретатор столько всякой мути, что аж рили неинтересно.
Аноним 06/05/16 Птн 16:43:29  736067
>>736019
Неинтересно - пропусти. Зачем себя мучать-то?
Как заинтересует, так и вернешься.
Аноним 06/05/16 Птн 16:57:27  736078
>>736067
Ну, в принципе, я тоже так думаю. Потому что, когда неинтересно, чтение превращается реально в муки.
Аноним 06/05/16 Птн 22:38:53  736438
Зацените лиспаны, прикрутил репл с автодополнением к емаксу: https://github.com/TatriX/kite-mini.el
Через гуглодебагер.
Аноним 06/05/16 Птн 22:39:13  736440
>>736438
Самое главное то забыл: для js.
Аноним 06/05/16 Птн 22:40:14  736443
>>736440
А еще забыл сказать что пока оно в ветке https://github.com/TatriX/kite-mini.el/tree/dev и не готово до конца.
Аноним 06/05/16 Птн 22:44:04  736448
>>736438
Хуево, что только для хрома. У фурифокса нет аналогичного протокола?
Аноним 06/05/16 Птн 23:09:01  736464
>>736448
Есть. Но ебаться не хочется. Уж слишком фурифокс тормозной для разработки.
Аноним 07/05/16 Суб 05:05:03  736608
>>736067
а что ему дальше останется, 5 глава, которая целиком опирается на 4ую?(из интерпретаторов ваяем компиляторы)
>>736019
вообще, если с английским хорошо, можешь лекции на ютубе глянуть(MIT, ведут сами Сассман, Абельсон, на рутрекере видел еще 2010 года лекции из Беркли, но не смотрел)
Аноним 07/05/16 Суб 05:11:56  736609
https://habrahabr.ru/post/282986/
Сегодня утром вот поглядел видео и прочитал статью. С автором несогласен. С Сасменом, тоесть.
Аноним 07/05/16 Суб 05:50:00  736612
>>736609
поясни мысль, что именно не нравится в его рассуждениях?
Аноним 07/05/16 Суб 06:01:04  736614
>>736612
Я неточно выразился, я не несгласен, я просто его аргумент убедительным не нахожу. То, что теперь инжинерия поменялась таким образом, как он сказал, вовсе не означает, что тут же студентоту надо учить мануалы читать. Помему, свои костыли и велосипеды ценнее в практическом смысле, чем использование чужих. Именно при обучении, не в работе.
Аноним 07/05/16 Суб 20:59:18  737261
14626439587130.png (26Кб, 942x195)
>>736443
Автор потихоньку мержит в апстрим, а пока самое свежее тут: https://github.com/TatriX/kite-mini.el
Прикрутил отправку сообщений в консоль. Например, если во время загрузки скрипта все пошло по пизде, мы увидим пикрелейтед.

Обновление замыканий, конечно, охуенная вещь.
Аноним 08/05/16 Вск 23:25:47  737909
>>737261
А чо там, полное обговление кода без проблем проходит? Ну т.е. допустим, пишу я код на каком-нибудь йобаскрипте, потом модуль транслирую в жс и отправляю браузеру. Он нормально обновится?
Аноним 08/05/16 Вск 23:36:44  737915
>>737909
Поддержка сурсмапов в планах. Пока её нема, хотя для личного использования можно в 5 строчек написать.
Аноним 09/05/16 Пнд 04:03:56  738016
>>736438
Пиздуй игру делать.
Аноним 09/05/16 Пнд 14:14:57  738238
Эй, лиспаны, может кто по-хардкору пояснить, как в ecl создать so-шку из asdf-системы. Пробовал так https://common-lisp.net/project/ecl/static/manual/re55.html, но чот оно на выходе выдает эльф.
И ещё, кто-нибудь ковырял clasp?
Аноним 09/05/16 Пнд 14:54:29  738265
>>738016
Я для игры в частности и делаю. Оче удобно.
Аноним 09/05/16 Пнд 14:55:55  738268
>>738265
На чистом жс хуяришь? Без всяких elm, clojurescript и т.п.?
Аноним 09/05/16 Пнд 15:08:43  738272
>>738268
Игру-то? Да.
Аноним 09/05/16 Пнд 15:15:27  738276
>>738268
Ramda хотя бы используется?
Аноним 09/05/16 Пнд 15:15:57  738278
>>738272
А чего так? Принципиально не используешь или просто лень разбираться?
Аноним 09/05/16 Пнд 17:23:19  738444
>>738276
На работке пользуемся. Когда я проект начинал про неё еще никто не слышал.
>>738278
В данном проекте принципиально. Воообще у всех транспайлеров есть куча проблем, с которыми не очень хочется ебаться. Даже несчастный babel и тот мозг ебет, что уж говорить про остальных.
Аноним 09/05/16 Пнд 17:24:19  738446
>>738278
Кложурскрипт выглядит вкусно, но жаботормознутость перечеркивает все достоинства.
Аноним 09/05/16 Пнд 18:09:56  738482
>>738446
>Кложурскрипт
>жаботормознутость
Что?
Аноним 09/05/16 Пнд 18:41:04  738510
>>738482
Оно по твоему само себя компилит? Там нужен жабобол тормозной.
Аноним 09/05/16 Пнд 18:44:35  738513
>>738510
Разве кложескрипт не на жс написан?
Аноним 09/05/16 Пнд 18:47:12  738516
>>738513
Ещё тормознее.
Аноним 09/05/16 Пнд 18:48:01  738518
>>738513
https://github.com/clojure/clojurescript/wiki/Quick-Start
> Download the standalone ClojureScript JAR.
Аноним 09/05/16 Пнд 19:05:33  738536
>>738510
Ты совсем поехавший?
Аноним 09/05/16 Пнд 19:17:14  738544
Пока долбоебы плачут от того что нужно скачать О ГОСПАДИ JAR, стартапы на Кложуре получают миллионные фандинги
http://techcrunch.com/2015/06/30/trucker-path-raises-20m-to-claim-the-uber-for-truckers-moniker/
Аноним 09/05/16 Пнд 19:38:03  738558
>>738544
С таки же успехом это дерьмо могли написать на phpscript.
Аноним 09/05/16 Пнд 21:37:27  738636
>>738518
Что за хуйня? В кложескрипте нет функции compile или хотя бы eval, потому что транслятор на яве^Wкложуре?
Аноним 10/05/16 Втр 02:30:43  738868
>>738558
люди делятся на два типа: одни зарабатывают деньги, а другие неудачники. Сейчас деньги зарабатывают они.
Аноним 10/05/16 Втр 11:17:14  739046
>>738636
Там есть eval, но для этого нужно специальный билд собирать (ибо много весит):
https://github.com/clojure/clojurescript/wiki/Optional-Self-hosting

А по поводу необходимости ставить JDK, то тут дело скорее в инструменте управления проектами (Leiningen), который написан на обычной JVM-ной Кложе.
Аноним 10/05/16 Втр 11:42:53  739060
>>738868
> одни зарабатывают деньги, а другие
сидят на трубах скобках
Аноним 10/05/16 Втр 14:27:25  739215
14628796455850.png (88Кб, 643x421)
>>738558
ПГ так не думает
Аноним 10/05/16 Втр 15:42:28  739296
>>739215
Всё правильно делает, нигерам в общелисповском сообществе не место.
Аноним 10/05/16 Втр 21:36:09  739784
>>739215
очевидно блядь. Кложура это лучшее что случалось с Лиспом эвар. Только нищие долбоебы до сих пор этого не поняли.
Аноним 10/05/16 Втр 21:45:44  739809
>>739784
Нет, кложура слишком узкоспециализирована.
Аноним 11/05/16 Срд 03:58:43  740059
>>739809
показательный даун. эталонный
Аноним 11/05/16 Срд 04:03:52  740061
>>740059
Clojure объективно не дотягивает до CL.
Как язык - никакой. Производительность - так себе. Ну про минусы JVM даже лень рассказывать. Там много говна, начиная от recur, и заканчивая невозможностю нормально делать hot code reload и невнятными стектрейсами.

Единственно, что выделяет Clojure, это огромнейший хипстерский хайп вокруг нее, и соответственно, допизды всяких библиотек(95% из них подчиняются известному правилу, но есть и годные). Соответственно, больше людей, в том числе тех у кого что спросить можно.

Думаю, причина ответа ПГ именно в этом.
Аноним 11/05/16 Срд 12:05:43  740220
>>740059
Знаешь ли, далеко не всем jvm подходит как платформа, а в другие кложура by design не умеет.
Аноним 11/05/16 Срд 13:22:32  740278
>>740061
> Как язык - никакой.
Гораздо продуманней чем CL.
> Производительность - так себе.
Лучше чем у CL, если расставить пару тайпхинтов
> невозможностю нормально делать hot code reload
Что блять? Любой динамический var свапается в любой момент. Ты, видимо, не знаешь как на низком уровне делается code reload и веришь в какую-то магию.
Аноним 11/05/16 Срд 13:22:59  740280
>>740220
Привет, ClojureScript.
Аноним 11/05/16 Срд 14:09:55  740309
>>740280
Это другой язык с другим сообществом и библиотеками.
Аноним 11/05/16 Срд 15:39:40  740372
>>740278
>Лучше чем у CL, если расставить пару тайпхинтов
Ага, видел я эти "пару тайпхинтов", когда код переписывается в ещё более нечитабельную яву-дрисню со скобками.
Аноним 11/05/16 Срд 15:46:23  740380
>>740278
>Что блять?
Насколько мне известно, там обновление кода через жопу сделано, из-за чего на ведроиде приходится сначала генерировать dex, а потом подгружать.
другой анон, если чо
Аноним 11/05/16 Срд 15:49:53  740385
>>740309
Нет.
Сообщество то же - все кто используют ClojureScript на фронте, используют Clojure на бэке.
Библиотеки, не работающие напрямую с платформой, работают и там и там.
Например core.async - библиотека CSP и корутин - работает и там и там. Timbre, specter, instaparse, да практически все либы, которые имеет смысл делать кроссплатформенными - сделаны кроссплатформенными (после того как в 1.7 ввели reader conditionals).
Аноним 11/05/16 Срд 15:53:06  740388
>>740380
С Андроидом ситуация такая:
Dalvik не позволяет использовать classloader в рантайме. А в Clojure всё на этом построено, т.к. исполнение коде в рантайме делается через класслоадер.
Поэтому для Android приходится делать AOT компиляцию и отказываться от исполнения кода в рантайме.
На других JVM таких проблем нет.
Аноним 11/05/16 Срд 15:58:04  740398
>>740385
>Сообщество то же - все кто используют ClojureScript на фронте, используют Clojure на бэке.
Судя по проектам на гитхабе, пишут только на кложескрипте, видимо на серверную сторону выбирают что-то полегче jvm.
>Библиотеки, не работающие напрямую с платформой
Таких не бывает.
>Например core.async
Насколько я помню, там код продублирован отдельно для кложескрипта и отдельно для кложуры.
>>740388
Ну ок. А существующие объекты после обновления класса используют новую или старую версию?
Аноним 11/05/16 Срд 16:26:12  740427
>>740398
> Судя по проектам на гитхабе, пишут только на кложескрипте, видимо на серверную сторону выбирают что-то полегче jvm.
Из чего ты деалешь такие выводы? Не знаю ни один проект, где так делают.
> Таких не бывает.
Смотри список выше.
> Насколько я помню, там код продублирован отдельно для кложескрипта и отдельно для кложуры.
Да, действительно. Но там дело в том, что она вышла во времена 1.6, а переписывать они не стали.
Посмотри остальные популярные либы, там всё через *.cljc
Аноним 11/05/16 Срд 16:26:17  740428
>>740385
[code lang=lisp]
(:import java.lang.StringBuilder
[java.io File BufferedReader BufferedWriter InputStream
Writer InputStreamReader IOException])

(defn read-response [^BufferedReader in]
(let [sb (StringBuilder.)]
(loop [sb sb c (.read in)]
(cond
(= c 1) (let [ret (str sb)]
(print ret)
(recur (StringBuilder.) (.read in)))
(= c 0) (str sb)
:else (do
(.append sb (char c))
(recur sb (.read in)))))))
[/code]
Разве могут быть в __таком__ языке библиотеки, на работающие с платформой. И ты ещё что-то про бóльшую продуманность говорил.
Аноним 11/05/16 Срд 16:29:34  740433
>>740398
> Ну ок. А существующие объекты после обновления класса используют новую или старую версию?
Там не сам класс меняется, а используется фича исполнения кода при загрузке класса.
Динамичность достигается через varы, которые можно свапать (с определённой семантикой).
Аноним 11/05/16 Срд 16:29:52  740434
>>740428
Список выше.
Аноним 11/05/16 Срд 16:30:22  740435
>>740428
Кстати, почему просто slurp не используешь?
Аноним 11/05/16 Срд 16:33:56  740438
>>740435
Это ты у рича хикки спроси, почему он повсеместно использует подобную дрисню вместо того, чтобы один раз сделать нормальную обертку.
>>740427
>Из чего ты деалешь такие выводы?
Я как-то искал хоть какие-нибудь проекты на кложуре. И это оказалось не так-то просто, везде один лишь кложескрипт.
>>740433
А, понял. Ну а с объектной системой как? Допустим, написал я в кложе класс, создал несколько объектов, а потом класс изменил.
Аноним 11/05/16 Срд 17:41:03  740481
>>740438
> Это ты у рича хикки спроси, почему он повсеместно использует подобную дрисню вместо того, чтобы один раз сделать нормальную обертку.
Обёртка есть c версии 1.0, называется slurp: https://clojuredocs.org/clojure.core/slurp
Кусок кода с BufferedReader выложен на сайте чтобы проиллюстрировать интероп с JVM.

> Я как-то искал хоть какие-нибудь проекты на кложуре. И это оказалось не так-то просто, везде один лишь кложескрипт.
Просто странная привычка выкладывать искходники продакшен кода есть только у фронтендчиков. И то, примеров кроме Circle CI я на знаю.

> Допустим, написал я в кложе класс, создал несколько объектов, а потом класс изменил.
Если ты имеешь в виду deftype или defrecord, то их можно менять в рантайме:

"deftype and defrecord dynamically generate compiled bytecode for a named class with a set of given fields, and, optionally, methods for one or more protocols and/or interfaces. They are suitable for dynamic and interactive development, need not be AOT compiled, and can be re-evaluated in the course of a single session."
(http://clojure.org/reference/datatypes#deftype_and_defrecord)
Аноним 11/05/16 Срд 17:52:33  740487
14629783537910.jpg (36Кб, 300x320)
Что в ОП-посте делает Tcl?
Аноним 11/05/16 Срд 20:45:04  740662
>>740481
>Кусок кода с BufferedReader выложен на сайте чтобы проиллюстрировать интероп с JVM.
Тот кусок кода взят из реализации кложескрипта с гитхаба.
Аноним 11/05/16 Срд 21:11:28  740701
>>740487
А что не так? Tcl - типичный лисп
Аноним 11/05/16 Срд 21:14:55  740704
Вот вроде послушаешь про кложуру - кажется, неплохой язык.
Но начинаешь щупать, так появляется стойкое ощущение, что тебя обманули.
Аноним 11/05/16 Срд 22:02:38  740767
>>740662
Нашёл. Это используется в чтении ответа от процесса ноды. В обычной жизни такое пишется нечасто.
Кстати, в каких языках (кроме Эрланга) читать бинарный поток удобнее?
Аноним 11/05/16 Срд 22:02:57  740768
>>740704
Поделись впечатлениями.
Аноним 11/05/16 Срд 22:39:19  740836
>>740767
Да там в любой модуль загляни - везде ява-кишки ковыряют.
>Кстати, в каких языках (кроме Эрланга) читать бинарный поток удобнее?
Ну, как-то на общелиспе pbf разбирал. Вроде не так уж и плохо, хотя эрланговским сопоставлением с образцом было бы удобнее, да.
Аноним 11/05/16 Срд 22:51:41  740841
Clojure язык довольно убогий, но популярный.

Хотя я так и не понял, почему все так хвалят его за то что он на JVM, а сами JVM не любят и стараются использовать поменьше.

Ну и да, никаких ридер-макросов, код-релоад через жопу, кривое и тормозное STM, нет нормальных примитивных структур данных, нет нормального ООП, макросы говно, мультиметоды - пародия на коммонлисповые, нет сигналов, РЕПЛ ДЛЯ ЕМАКСА ЗАПУСКАЕТ ДВА ЖАВАПРОЦЕССА ПО 600 МЕГАБАЙТ ОПЕРАТИВКИ БЛЯДЬ(у того же SBCL тихо крутится 50мб от силы, и это на 64бит).

ClojureScript хорош(но разве что по сравнению со скалажс и собсно жс)

А еще вокруг Clojure куча тупых хипстеров и хайп, что дичайше бесит.

_мимо лавсан_
Аноним 11/05/16 Срд 22:54:06  740845
>>740841
А что там не так с кодрелоадом, макросами и мультиметодами?
Аноним 11/05/16 Срд 23:01:58  740851
>>740845
рекомендую потыкать CL, разница станет очевидна

кодрелоад в JVM это само по себе анал и боль, но в Clojure это вообще смерть как закостылено. Вроде работает, но не как в CL. Макросы слабее. У них не определена семантика, меньше спецформ(macrolet? symbol macros? Не, не слышали. lexenv в макросах? Похуй, сделаем хоть чо то[тут рекомендуется сравнить с SBCL, есличо]). Мультиметоды рядом даже с CL не стояли. В CL дичайшая система обобщенных функций, которая вся выражается через MOP, и компиляцию в рантайме. Еще там классы крутые, но это отдельная история. Короче после CL - Clojure кажется поделкой на коленке.

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

мимо лавсан
Аноним 11/05/16 Срд 23:44:40  740893
>>740851
Жалко только что они из этих лиспов кучу легаси притащили. А еще напрягает что в стандартной либе нихуя нужного нету. Впрочем, есть квиклисп. Но хочется чтобы хотя бы как в елиспе было: на каждый чих готовая функция.
Аноним 12/05/16 Чтв 00:38:40  740953
>>740893
ну так а что им было делать
80, куча лиспов, давление вендоров

сейчас стдлиб кажется устаревшим, да, но тогда он был передовым

алсо, рекомендую помогать мне пилить новый стдлиб
https://github.com/Lovesan/CLR/
Аноним 12/05/16 Чтв 00:45:47  740960
>>740851
>это скорее что-то типа Python - типа, сделаем на глазок, быстренько и красивенько, поднимем хайп, а на остальное похуй
Что не так с Питоном?
Аноним 12/05/16 Чтв 00:50:20  740964
>>740953
Зачем создавать новый велосипед? Почему бы не допилить сузествующий (cl21, например)?
Ну и хоть бы планы/цели расписал.
Аноним 12/05/16 Чтв 00:51:08  740966
>>740960
А что с ним так?
Аноним 12/05/16 Чтв 00:53:59  740972
>>740966
я тебя спросил
Аноним 12/05/16 Чтв 00:55:33  740976
>>740953
>прошло полгода
>200 sloc

Давай, удачи!
Аноним 12/05/16 Чтв 00:59:54  740991
>>740953
Лучше бы показал хоть один написанный тобой проект на CL.
Аноним 12/05/16 Чтв 01:00:02  740992
>>740972
Нет, не меня
Аноним 12/05/16 Чтв 01:08:16  741000
>>740964
cl21 это в осн. синтаксический сахар. А у меня там задатки на норм стдлиб, на функциональность. Слизываю с CLR потихому, но а откуда еще слизывать?
>>740976
работы дохера
>>740960
- Неконсистентность семантики("чойта тут воткунто?" пример - print - функция или встроенное чото? Или там, лямбды)
- Плохая обратная совместимость, конфликт 2 и 3
- Тормоза. Бля, CPython(99% питона в мире) тормозит как пиздеееееец. Бедная gentoo евпоча.
- GIL
- Общая, какая-то, ну не знаю, нейстройность языка. Ну вот нахуя можно использовать окружение как dict? Что за ебаный бред? Это же не скомпилировать, и не оптимизировать нормально. Что за self как явный аргумент, хотя у нас классическое классовое ООП, а не JS, и не смоллтолк? Итд.
- Куча хипстеров, с говнобиблиотеками, которым дай волю, ядро прыщей на питон перепишут.
- Вообще, все это easy(в противоположность simple), типа php, питона итд, оно провоцирует говнокод и непрофессионализм в программировании. А потом мы удивляемся, почему так упали рейты.
- Итд. Спать хочу, забыл апрельские тезисы
Аноним 12/05/16 Чтв 01:12:00  741005
>>740991
два самые крутых проекта, которые я когда-либо делал для опенсорса на CL, это virgil и doors.
На гитхабе есть:
https://github.com/Lovesan
Первый - FFI с подходом полной сериализации в/из сишной памяти. Типа, абсолютно прозрачная работа с сишкой и вообще foreign кодом как с лисповыми объектами.
Doors - интерфейсинг WinAPI, но самая доделанная часть, за которую мне не раз спсб говорили - это интерфейс к COM. Можно в т.ч. и создавать свои COM-сервера(для SBCL и других не умеющих в DLL только out-of-process ессно).
Аноним 12/05/16 Чтв 01:18:57  741016
>>741000
>cl21 это в осн. синтаксический сахар.
Ну не совсем. Там больше реструктуризация, избавление от устаревешего говна, прикручивание всяких александрий.
>Слизываю с CLR потихому, но а откуда еще слизывать?
С дотнета шоле или того забытого проекта или он не clr звался, а как-то похоже обновления общелиспа?
>Бедная gentoo евпоча.
Она бедная из-за libbash, а не только питона.
Аноним 12/05/16 Чтв 01:21:52  741019
>>741016
да, CLR типа дуднет.
Если полезть в мой код, можно наблюдать там прямой пиздинг интеллектуальной собственности
Аноним 12/05/16 Чтв 16:04:02  741432
>>741019
А ClojureCLR использовать не думал? Там интеграция с дотнетом теснее некуда.
Аноним 14/05/16 Суб 20:48:52  743663
14632481324240.png (9Кб, 651x64)
Подчеркивает как unreachable code (slime + sbcl), хотя вроде все работает. Почему так?
Аноним 15/05/16 Вск 02:08:01  743870
>>706909
>Как думаете, почему лисп потерял популярность в 60-70?
Аноним 15/05/16 Вск 13:49:12  744110
>>743663
А вот хуй знает.[code]
; 728: F7F9 IDIV EAX, ECX
; 72A: C1E002 SHL EAX, 2
; 72D: 85D2 TEST EDX, EDX
; 72F: 7507 JNE L3
[/code]
Судя по сгенерированному коду, (zerop (mod ...)) на месте.
Аноним 15/05/16 Вск 13:57:39  744116
>>743663
> deleting unreachable code
> --> LET IF AND IF AND THE IF PLUSP >
А, может быть, там подставляется проверка аргументов на неотрицатльность, а затем удаляется, т.к. из их типов ясно, что они положительны.
Аноним 15/05/16 Вск 14:00:52  744119
>>744116
>>743663
Похоже, так и есть.
[code lang=lisp]
(deftransform mod ((number divisor))
`(let ((rem (rem number divisor)))
(if (and (not (zerop rem))
(if (minusp divisor)
(plusp number)
(minusp number)))
(+ rem divisor)
rem)))
[/code]
Аноним 15/05/16 Вск 16:49:56  744272
Поясните за ньюлисп, почему там интерпретатор 1 мегабайт весит? Разве так бывает?
Аноним 15/05/16 Вск 17:06:17  744283
>>744272
Почему нет-то? Это ж просто интерпретатор, а не образ лисп-системы как у общелиспа
Аноним 17/05/16 Втр 12:41:32  745700
>>706909
AI Winter
Аноним 20/05/16 Птн 08:42:18  748136
http://lisp-lang.org/
Теперь и у лиспа есть хипсторский сайт. Дотянулись таки... суки
Аноним 21/05/16 Суб 10:02:41  749038
>>740701
Где мои скобочкии??
Аноним 21/05/16 Суб 14:26:53  749261
>>749038
]]]]]]]}}}}}
Аноним 21/05/16 Суб 15:02:32  749304
>>744283
>Это ж просто интерпретатор, а не образ лисп-системы как у общелиспа
А чем ньюлисп хуже/неполноценнее нормального (того же общелиспа)? Нельзя компилировать код в екзешник или что? Я просто сейчас книжку читаю http://www.fuzzylisp.com/book.html там все примеры на ньюлиспе, возможностей там явно не меньше, чем в каком-нибудь пистоне.
Аноним 21/05/16 Суб 15:38:25  749325
>>749304
а откуда мысль, что он хуже, он просто другой
Аноним 21/05/16 Суб 16:33:37  749378
>>749261
но они должны быть круглыми!!111 а этом вся суть нелисп!!
Аноним 22/05/16 Вск 03:46:41  750030
>>748136
Как будто темку на вордпрессе глянул
Аноним 22/05/16 Вск 21:46:12  750771
Сап аноны.
У меня "трагедия", я пишу на ruby за денюжку в одной конторе вот уже почти 5 лет. В последний год раби мне с каждым днем становится противен не знаю пока почему. Решил посмотреть в сторону Си, начать сначала так сказать. но нет. Читаю сейчас SICP, делаю упражнения и вы знаете, для меня будто открывается новый мир совершенно иной настолько яркий. Лисп очень крутой язык. Паралелльно посмотрел на clojure. Прочел статью Пола Грэма http://www.nestor.minsk.by/sr/2003/07/30710.html
и тут понеслись у меня мысли. Посоветуйте мне на какой путь встать? Продолжать дальше писать на руби и не рыпаться, пересесть на Лисп? Но какой? Common Lisp? Clojure?
Аноним 23/05/16 Пнд 04:12:50  751137
>>750771
Ну, если найдешь работу, перекатывайся конечно
Аноним 23/05/16 Пнд 17:32:42  751633
>>750771
Почему "или"? Продолжай писать на руби и перекатывайся на common lisp. Если даже не найдешь ему платного применения, то получишь хотя бы полезный опыт.
Аноним 23/05/16 Пнд 21:42:38  751992
>>750771
не слушай этих дебилов с комон лиспом. Сейчас даже Пол советует Кложу.
Аноним 23/05/16 Пнд 23:20:47  752124
>>750771
Однозначно кложура - она сейчас на переднем крае во всех перспективных областях. Достаточно посмотреть на список книжек на любой помойке типа http://it-ebooks.info/tag/clojure/ . Кложуру за несколько лет продвинули в разы дальше, чем коммонлисп за все 160 лет его существования.
Аноним 23/05/16 Пнд 23:32:50  752141
Не могу осилить трансдюсеры. Вроде всё понятно, но у меня какое-то постоянное ощущение, что это какое-то неправильное костыльное говно, а Рич Хикка наркоман.
Аноним 23/05/16 Пнд 23:42:57  752152
>>752141
http://thedeemon.livejournal.com/87320.html
Аноним 24/05/16 Втр 16:34:08  752748
>>751992
А что по-твоему ещё он мог посоветовать негру?
Аноним 24/05/16 Втр 16:49:10  752759
>>752124
>Однозначно кложура - она сейчас на переднем крае во всех перспективных областях.
Или, если перефразировать, часть вебжавахипстеров, что не осилила скалу, использует кложу. На этом её применение заканчивается.
>Кложуру за несколько лет продвинули в разы дальше, чем коммонлисп за все 160 лет его существования.
Кложу никуда не продвигали, она паразитирует на жвм и лиспах.
>>750771
В общем, не слушай этих жвм-сектантов. Кложа, если сравнивать с общелиспом, довольно дряной язык: ни сигналов, ни нормального ООП, ни эффективных реализаций, и всё это помножается на многочисленные минусы жвм и жавы, которая там изо всех щелей проглядывает >>740428
Аноним 24/05/16 Втр 17:32:31  752800
Лиспаны, с помощью MOP как-нибудь можно внедриться в процесс генерации сеттеров? Хочу добавлять свой код к телу сеттера, но не хочу занимать after-метод, т.к. он может понадобиться программисту. Что делать?
Аноним 24/05/16 Втр 22:33:37  753134
>>752759
Аноны, когда будете читать тот пост помните о том, что его пищет 27-летняя нищая пидораха, которого выперли (не взяли) со всех адекватных работ и он разразился соплями в одном из соседних тредов.

А пока пидораха ныл как все плохо, Хик написал еще одну охуительную штуку.
http://clojure.org/about/spec
Аноним 24/05/16 Втр 23:24:12  753182
>>752759
> она паразитирует на жвм и лиспах.
Ваще-то это лиспы сейчас паразитируют на кложуре. Народ сначала осваивает ее, а потом в редких случаях интересуется подножием эволюционной лестницы :)

> ни сигналов
Зачем они?

> ни нормального ООП
Нормальное там ООП.

> ни эффективных реализаций
Под JVM и JS - какие тебе еще нужны реализации?

> и всё это помножается на многочисленные минусы жвм и жавы
Часть чуда-то как раз в том, что кложура работает на жвм, интероперабельна и хорошо встроена в инфраструктуру.
Аноним 25/05/16 Срд 10:40:40  753488
>>752759
>что не осилила скалу, использует кложу
Ага, а лисп для тех кто не осилил алгол.
Аноним 25/05/16 Срд 17:35:27  753769
>>753488
Наоборот, тащемта.
>>753182
>> ни сигналов
>Зачем они?
В каком смысле? Ты не знаешь, что это такое? Или не понимаешь, как их использовать?
>Под JVM и JS - какие тебе еще нужны реализации?
Эффективные, написал же.
>Часть чуда-то как раз в том, что кложура работает на жвм, интероперабельна и хорошо встроена в инфраструктуру.
Ага, один большой неидиоматичный "плюс" >>740428
Уж если бы я оказался прикованным к жвм, то предпочел бы скалу, котлин, которые намного более гармонично вписываются в жава-мир и у которых хотя бы эффективный код на выходе, или в крайнем случае саму жаву, но никак не этот сплошной недостаток с именем "кложура"
>>753134
Эко ж тебя, успешного кложуриста-первокурсника, порвало.
Аноним 25/05/16 Срд 18:13:10  753807
>>753134
>http://clojure.org/about/spec
Р. Хикки как всегда на острие технологий.
И кого ты этим хотел в лиспотреде удивить?
Аноним 26/05/16 Чтв 21:09:42  754862
Всем снова здравствуйте!
Спасибо всем за ответы но вы меня еще больше запутали. я сейчас решил почитать The Land of Lisp, а там посмотрю и Common Lisp и Clojure.
Аноним 27/05/16 Птн 08:59:31  755130
Сап, лиспаны. У меня тут какая-то странная проблема нарисовалась. Ставлю sbcl, ставлю на него quicklisp. Выясняется, что встроенный asdf устарел, и надо бы накатить версию посвежее. Качаю дист, запускаю install-asdf.lisp. Пробую поставить какой-нибудь пакет через быстролисп. Работает, радуюсь. Пробую сегодня - некоторые пакеты валятся с ошибкой
Unknown &KEY argument :NAMESTRING
При вызове uiop/pathname:ensure-pathname путь к uiop :NAMESTRING :NATIVE :ENSURE-DIRECRORY T). Как я понял, в вызов не передается путь к либе. А почему, я так и не понимать.
Аноним 27/05/16 Птн 09:50:01  755166
>>755130
Отбой, все починилось установкой самой свежей версии
Аноним 27/05/16 Птн 09:52:50  755170
>>755166
Версии sbcl. 1.3.5 поставил.
минификс
Аноним 28/05/16 Суб 13:45:51  755886
>>754862
ты либо троллишь либо троллишь.
Аноним 30/05/16 Пнд 15:57:26  757598
Пробую вот на mcclim писать, а ведь вроде даже и ничего.
Аноним 31/05/16 Втр 07:42:43  758160
>>740701
Tcl задрочен на строках, а в остальном схожесть с лиспом не больше, чем у других языков, на которые повлиял последний. Он не больше лисп, чем JavaScript, например. INB4 "Да я овер 100 тисиэлевых килослоков на коленке за вечер пишу, ко-ко-ко…".
Аноним 31/05/16 Втр 08:08:45  758173
>>758160
Столман, залогинься.
Аноним 31/05/16 Втр 14:03:22  758377
>>758160
А что "остальное"-то?
Аноним 31/05/16 Втр 15:34:27  758492
Есть смысл читать Луку Карделли?
Аноним 31/05/16 Втр 15:40:26  758499
>>758492
А это кто?
Аноним 01/06/16 Срд 00:48:59  758981
>>758499
))))))
Аноним 01/06/16 Срд 09:20:13  759065
Лейнаны, почясните за раницу между ракетом и схемкой? Сильна ли она?
Аноним 01/06/16 Срд 11:03:36  759118
>>759065
И вообще, какие у ракеты слабые места по сравнению с common lisp/clojure?
Аноним 01/06/16 Срд 11:25:49  759129
>>705167 (OP)
Я понял!!! Динамические петушки - контрамоты. Они движутся во времени назад. Как было на самом деле: протоцепепе - ЛИСП 50-80 гг. C++ 80-90 гг. Haskell - новая версия цепепе. 90-00 гг. С точки зрения лиспопетушка сначала был Хаскель, в следующей версии он деградировал до цепепе, а в лиспопетушином будущем цепепе деградирует до лиспа.
А я все ломал голову, как человек может так ненавидеть будущее, так привязаться к прошлому, что пишет на лиспе? Но для лиспопетушка-контрамота лисп - это и есть будущее. А дальше ВВ2, индустриальная контрреволюция, религиозные войны, рабовладельческий строй, отрастание хвостов и подъем на деревья. Скай из зе лимит!
Аноним 01/06/16 Срд 11:26:37  759130
Лиспаны! а ваш тред хоть раз был в топе?
Аноним 01/06/16 Срд 11:32:31  759133
14647699513820.jpg (157Кб, 540x720)
Почему для того чтобы нарисовать простенький график(https://goo.gl/tqHAHL) racket`у требуется несколько секунд и ~300 мб памяти. У других лиспов (sbcl) такая же лажа?
Аноним 01/06/16 Срд 13:28:49  759216
>>759118
>И вообще, какие у ракеты слабые места по сравнению с common lisp/clojure?
Реализация. Ракетчики так не осилили запилить нормальный компилятор.
Аноним 01/06/16 Срд 13:34:55  759222
>>759133
Вангую, что эти несколько секунд уходят на (require plot).
>~300 мб памяти
Что-то дохуя. Даже для ракеты и даже для его жирноватой ide.
Попробуй сборщик мусора вызвать.
Аноним 01/06/16 Срд 14:21:16  759256
>>759129
Лисп задрал настолько высокую планку, что ни один из прошлых и нынешних сиплюсплюсов её не достиг.
Аноним 01/06/16 Срд 14:26:16  759264
Lisp Engineer - $2500/month - WORK FROM HOME
Москва • 1 июня

https://hh.ru/vacancy/17258963
Аноним 01/06/16 Срд 15:22:12  759322
Читаю ansi lisp. Там поясняют за указатели. Как вы вообще отличаете, когда функция работает с указателем, а когда - со значением? Тот же пример копирования списка из книги - каким боком я должен догадаться, где передается указатель, а где создается новая область памяти для значения?
Аноним 01/06/16 Срд 15:35:06  759333
>>759322
Наркоман что ли? В лиспе всё есть объект, поэтому считай, что передаешь по указателю.
Аноним 01/06/16 Срд 15:56:19  759345
>>759333
Окей, ясно. Там просто есть функции, которые конструируют новые объекты, и я затупил на этом примере. Башка не варит что-то.

ЗЫ, а циферки типа уже по значению передаются?
(setf a 1)
(setf b 1)
(eql a b) ->T
Аноним 01/06/16 Срд 17:05:32  759391
>>759345
Зависит от реализации.
Аноним 01/06/16 Срд 19:01:32  759488
14647968923800.jpg (84Кб, 1000x667)
>>759216
А какие слабые стороны реализации? Если говорить о скорости, то на бенчмарках racket вполне на уровне (среди других схем) - http://ecraven.github.io/r7rs-benchmarks/benchmark.html
В моих кейсах racket тоже оказался самым быстрым(сравнивал с guile и chicken). Расстраивает только потребление памяти и долгая загрузка библиотек.
То есть главный недостаток racket - низкая производительность?
>>759222
>(require plot)
А почему он так долго его загружает? Он его с нуля компилирует что-ли?
Аноним 01/06/16 Срд 19:15:03  759499
>>759264
>5 years or above c/c++ development
>the top 1% of talent
>1500-2500$
мда
Аноним 01/06/16 Срд 19:38:07  759513
>>759256
А haskell?
Аноним 02/06/16 Чтв 01:24:57  759736
Программач! посоветуй книгу по common lisp. Чаще всего рекомендуют Practical Common Lisp (пролистав ее сложилось впчетление, что она для brain-damaged), а Норвиг советует ANSI Common Lisp + On Lisp.
Или лучше вкатываться в кложуру?
Аноним 02/06/16 Чтв 01:59:26  759755
>>759736
PCL и Onlisp
Аноним 02/06/16 Чтв 02:00:39  759756
>>759488
Я с общелиспом сравнивал.
Все реализации схемы сосут.
Аноним 02/06/16 Чтв 02:07:10  759758
>>759345
В реализациях лиспа используются тегированные указатели, а числа, буквы в них упаковываются.
Аноним 02/06/16 Чтв 02:21:23  759763
>>759499
Так и ищут по удаленке, потому что на нормальных условиях такая работа стоит в 2 раза больше.
Аноним 02/06/16 Чтв 05:48:42  759800
Значит так, лайкаем и форкаем мой CLR, новую стдлибу для коммонлиспа.

Решил снова за нее взяться.
Сегодня ночью впилил нормальные обобщенные словари как в дуднете, и синтаксис для них как в Clojure (типа {:a 1 :b 2})

https://github.com/Lovesan/CLR

Пока реализация есть только для SBCL. А треды и тредпулы только под винду. Потому что я ебал линукс в рот пока не закончу основную реализацию.

мимолавсан
Аноним 02/06/16 Чтв 05:53:01  759802
>>759800
Так, напиздел. Для SBCL-Linux треды и тред-пулы тоже работают. А вот IO первым делом будет под винду.

мимолавсан
Аноним 02/06/16 Чтв 06:36:40  759809
>>759800
>и синтаксис для них как в Clojure (типа {:a 1 :b 2})
Фууу, разные скобочки. Чем тебя вариант типа #h(:a 1 :b 2) не устроил?
Аноним 02/06/16 Чтв 06:37:31  759811
>>759809
хз, привычнее ля кложуреблядков, которых есть замысел переманить после дописывания
Аноним 02/06/16 Чтв 06:38:41  759812
>>759811
хотя мб голосование потом устроить. поменять то нехуй делать
Аноним 02/06/16 Чтв 06:44:37  759814
>>759812
О, придумал.
#h(...) Это будут сеты. hset. Или #{}
хз
Аноним 02/06/16 Чтв 07:04:02  759819
>>759811
Мелочь-то незначительная, а столько неудобств от неё.
Никогда не понимал этих ]}]))}]
>>759814
#d для словарей, например. Да букв-то полно, хуле. На всех хватит.
Аноним 02/06/16 Чтв 12:16:25  759916
>>759800
А зачем ты ffi велосипедишь? Не целесообразнее ли взять cffi, которая де-факто стандарт?
Аноним 02/06/16 Чтв 20:52:17  760287
После непродожительного паралелльного изучения Common Lisp и Clojure мое мнение:
Как сферический язык в вакууме cl заруливает.
Как инструмент для решения проблем рулит и педалит кложура
Аноним 02/06/16 Чтв 21:37:49  760308
>>759216
Зато там батарейки и очешуительные доки
Аноним 02/06/16 Чтв 21:42:52  760310
>>760308
блджад, если сделают эффективную реализацию и начнут пиарить, Racket может взлететь, мне кажется
Аноним 02/06/16 Чтв 21:51:37  760313
>>759756
Chez Scheme неплохая. Только у нее в поставке даже srfi нет
Аноним 03/06/16 Птн 00:33:54  760447
>>759755
Выбрал The Joy of Clojure
Аноним 03/06/16 Птн 00:52:51  760450
>>760287
ни один уважающий себя современный разработчик не выберет язык с мутабельными типами данных и отсутствием нормальных конкарренси примитивов.
Аноним 03/06/16 Птн 02:12:19  760467
>>760447
Толсто
Аноним 03/06/16 Птн 02:25:04  760469
>>760450
ни один уважающий себя современный разработчик не выберет язык без зависимых типов. А тем более жаву да ещё и с покореженным синтаксисом.
Аноним 03/06/16 Птн 02:46:34  760471
>>760469
Не джаву, а jvm.И синтаксис гораздо лучше чем в common lisp.
Аноним 03/06/16 Птн 03:01:07  760472
>>759916
Это будет библиотека абсолютно без внешних зависимостей
Аноним 03/06/16 Птн 03:04:12  760474
>>760471
Маня, синтаксис в Common Lisp это вопрос решаемый не приходя в сознание

Если бы ты смотрел мой доклад на ITGM, где я из CL сделал сначала JS, а потом PHP, понял бы что к чем

мимолавсан
Аноним 03/06/16 Птн 03:49:15  760477
>>760474
>>я из CL сделал сначала JS, а потом PHP
Толку от этого ноль
Аноним 03/06/16 Птн 04:35:20  760478
> мимолавсан
кто такой, чем знаменит?
Аноним 03/06/16 Птн 05:07:24  760479
>>760478
Поборник лиспа и мелкософта из /c/. Вел охуительный блог http://juick.com/lovesan/ где знатно доставлял, поливая всех и вся говном. Особенно не любит швабодную ос и пиздолизов. Читать в первую очередь теги долбоебы, прыщи, *Haskell (его тоже в основном говном поливает). Не взяли в джетбрейнс. В свободное время пишет биндинги на коммон лиспе. Верит, что метапрограммирование спасет мир.
Аноним 03/06/16 Птн 05:51:51  760481
>>760479
может он уже дропнулся? новых записей ни в жж, ни в жуйке, ни на лоре с 2015.
Аноним 03/06/16 Птн 05:52:42  760482
>>760481
он же был какой-то пиздастрадалец омежка и заливался от этого огненой водой.
Аноним 03/06/16 Птн 06:12:06  760487
>>760481
На гитхабе коммитить начал снова недавно ведь.
Аноним 03/06/16 Птн 06:38:16  760490
>>760487
ага, 5 коммитов вчера, из запоя что-ли вышел?
Пропил мозги нахуй.
Вообще печально что архимаг забросил, тот реально лиспкун, и его вклад в рашнлиспкомьюнити на уровне ксача.
Аноним 03/06/16 Птн 17:01:11  760721
Почему в CL нельзя просто взять и передать функцию аргументом, як в Scheme? Нужно квотить, делать funcall. С чем это связанно? Я нуп.
Аноним 03/06/16 Птн 17:27:29  760741
>>760721
У CL раздельные пространства имен для функций, переменных, пакетов и т.д., а у схемы одно на всё.
Аноним 03/06/16 Птн 17:32:58  760743
>>760741
Предвосхищая вопрос зачем это - из-за того что в cl макросы не hygenic
Аноним 03/06/16 Птн 17:46:44  760755
>>760743
Можешь раскрыть, как это может быть взаимосвязано?
Аноним 03/06/16 Птн 18:25:43  760778
>>760741
А почему через лямбду можно? Если смотреть в топ-левеле, то лямбда вроде возвращает то же.
((lambda (x) ( x x)) 4) <--работает
((symbol-function '
) 4 4) <--нет
Аноним 03/06/16 Птн 18:26:35  760779
>>760778
В symbol-function подаётся '*
Аноним 03/06/16 Птн 19:06:53  760803
>>760755
В Lisp 2 гораздо проще избежать коллизию имен.
Аноним 03/06/16 Птн 21:50:58  760893
>>760803
Типа, логика в том, что больше неймспейсов -> меньше коллизий -> гигиена нинужна?
Аноним 03/06/16 Птн 21:58:21  760897
>>760893
тут крушал поинт именно в том, что функции(которые обычно глобальные) в отдельном неймспейсе, да
Аноним 03/06/16 Птн 22:41:19  760929
>>760897
ну и говно
Аноним 04/06/16 Суб 00:31:30  760988
>>760929
У clojure один namespace
Аноним 04/06/16 Суб 09:08:32  761068
>>760988
Там можно кастомные неймспейсы создавать.
Аноним 04/06/16 Суб 16:03:08  761277
>>761068
Я имел в виду что, в кложе имен функций и переменных находятся в обном пространстве, как и должно быть в функциональном языке
Аноним 05/06/16 Вск 01:58:24  761902
Лиспач! стоит ли читать Purely Functional Data Structures?
Аноним 05/06/16 Вск 03:14:39  761919
>>761277
А call/cc вам завезли?
Аноним 05/06/16 Вск 03:29:19  761920
>>761919
Смешно.
мимо кложурист
Аноним 05/06/16 Вск 03:49:03  761922
>>761919
Нет (
Аноним 05/06/16 Вск 03:49:19  761923
>>761920
А мне грустно
Аноним 05/06/16 Вск 04:10:03  761925
>>761920
>>761922
В какие-то ограничения жвм все упирается, что ли? В Kawa Scheme же запилили как-то.
Аноним 05/06/16 Вск 21:04:31  762587
Кто нибудь может объяснить, чего Хикки так тащится от JVM?
Аноним 05/06/16 Вск 21:09:41  762589
>>762587
Ему gc самому было лень делать?
Аноним 09/06/16 Чтв 00:18:56  765131
http://www.opennet.ru/opennews/art.shtml?num=44420
Аноним 09/06/16 Чтв 00:43:15  765144
>>765131
мне бы в джаваскрипт...
Аноним 09/06/16 Чтв 14:38:19  765446
>>765144
parenscript
Аноним 12/06/16 Вск 16:12:52  767818
>>765144
jscl жи есть
Аноним 12/06/16 Вск 18:11:55  767936
Господа, что я делаю не так в реализации итеративного вычисления цепной дроби? https://ideone.com/7fiRh4

У островных полубогов код точно такой же, но рабочий:
http://wat-aro.hatenablog.com/entry/2015/10/08/061911
Аноним 12/06/16 Вск 18:51:49  767979
>>767936
[code]
(define (frac i)
(if (__<__ i k)[/code]
[code]
(define (recur i)
(if (__=__ i k)[/code]
Аноним 12/06/16 Вск 19:14:29  767996
>>767979
Рекурсивное говно, а надо сделать итеративно.
Аноним 12/06/16 Вск 19:15:57  767998
>>767996
Сравнение, говорю, у тебя не то. Должно быть =, а у тебя <
Аноним 12/06/16 Вск 19:27:26  768020
>>767998
>Должно быть =, а у тебя <
Я спрашиваю про реализацию cont-frac-iter в моем коде на идеоне. У меня там =.
Аноним 12/06/16 Вск 19:37:41  768033
Странно, что по запросу SICP выдается столько японских сайтов. У пидорашек книга непопулярна.
Аноним 12/06/16 Вск 19:40:12  768037
>>768020
А, вижу. Ты с именем там обосрался. У тебя frac-iter, а должно быть просто iter.
Воспользуйся рэкетом, там подобные ошибки сразу выявляются.
Аноним 12/06/16 Вск 19:41:03  768039
>>768033
У нас просто не принято вести блоги о решении задач для первокурсников.
Аноним 12/06/16 Вск 19:45:28  768053
>>768037
Неа, вычисляется неправильно.
https://ideone.com/64MST8
Аноним 12/06/16 Вск 19:46:39  768054
>>768053
Оно и не должно: (lambda (i) 1.0)
Аноним 12/06/16 Вск 19:52:30  768060
>>768039
Потому что даже их осилить не могут или пишут в блогах про "смотрите, какая хуйня случилась в этом фреймворке, и вот как я с ней справился".
Аноним 12/06/16 Вск 20:13:41  768083
>>768060
Что там осиливать? Задачи рассчитаны на первокурсников.
Уж не с политача ли ты залётный? Не понимаю, что за тенденция такая выставлять себя хуже в сравнении с какой-то другой нацией.
Аноним 12/06/16 Вск 20:15:44  768088
>>768083
>что за тенденция такая выставлять себя хуже в сравнении с какой-то другой нацией
А чем мы лучше? По технологиям мы сосем, наши бабы известны на весь мир как отъявленные шлюхи. Нет ничего проще, чем снять Наташку и купить русского быдлокодера для аутсорса.
Аноним 12/06/16 Вск 20:17:59  768090
>>768088
ясно
Аноним 12/06/16 Вск 20:42:16  768108
>>768088
Однако сильная штука, эта ваша пропаганда. Что ж такое человеку-то нужно сказать, чтоб он сам себя ненавидеть начал.
Аноним 12/06/16 Вск 21:52:14  768185
>>768108
Он не себя ненавидит, а считает что вокруг него одни говноеды, а он сам рыцарь на белом коне, просто ему видите-ли не повезло родится в этом болоте.
Аноним 12/06/16 Вск 22:10:13  768199
>>768083
задетектил лавсана. не обращайте внимания, местная ебанутая нищенка
Аноним 12/06/16 Вск 22:56:17  768243
>>768199
Сомневаюсь, что то был лавсан, потому что писал я
Аноним 15/06/16 Срд 11:29:22  769886
>>705167 (OP)
В список диалектов AutoLISP добавьте (скриптовый язык AutoCAD), до Clojure это был самый популярный лисп.
Аноним 15/06/16 Срд 16:27:14  770116
>>769886
Он никогда не был популярнее общилиспа
Аноним 15/06/16 Срд 16:27:35  770117
>>770116
>обще
быстрофикс
Аноним 15/06/16 Срд 19:01:56  770230
>>769886
Сам и добавь. Шапка в титанпаде
Аноним 18/06/16 Суб 19:20:00  773346
>>705167 (OP)
Кложурогоспода, как мне запилить структуру с состоянием? Прочитал про type, но вот не пойму как в нем хранить внутреннее состояние.
Допустим, мне нужно хранить состояние подключения во внутреннем поле типа Database. Я объявляю тип как
(deftype Database [url] (connect [db] ...) (disconnect [db]))
Экземпяр Connection мне нужно хранить в приватном поле, и создавать его при вызове метода connect, а если я укажу его в квадратных скобках при объявлении типа, то он будет публичным. Тащемта может дело в том, что я думаю объектно-ориентированно, но вот для этой задачи ооп на мой взгляд луше всехо подходит, ибо экземпляров Database нужно несколько, и у каждого из них будет свое состояние.
Аноним 18/06/16 Суб 19:58:45  773394
>>773346
а почему тебе не завести атом для состояния подключения и написать для него функции-обработчики?
Аноним 18/06/16 Суб 20:09:48  773413
>>773346
А зачем тебе изменяемое поле для соединения?
(connect {:host host :port port :database db ...}) => {:connection conn :conn-info {:host ...}}
И то я сомневаюсь, что эта информация не продублирована в самом объекте соединения.
Аноним 18/06/16 Суб 21:38:54  773513
>>773413
>А зачем тебе изменяемое поле для соединения?
Идея в том, чтобы те кто работают с Database не пользовались даже connect. Я хочу при обращении к методу read-data проверять наличие соединения, и если оно есть то реюзать, а если нету то устанавливать новое с помощью connect. Вот, и вопрос в том где хранить это состояние. Database должен сам менеджить свое внутреннее состояние, а те кто обращаются к read-data могут.

Сейчас я вижу только один выход: при образении е методам Database ему еще должен передавать хешмап, в который он будет складывать свое состояние, и так при вызове каждого метода. Если так и нужно поступать в данном случае то ок, но вообще я искал решения похожего на классическое ооп с его инкапсуляциями.
Аноним 18/06/16 Суб 21:44:18  773518
>>773394
потому что само по себе подключение это особенность реализации Database. Database реализует протокол Readable в моем поделии, а кроме него есть еще TextFile, который тоже реализует Readable, но у него нет connection внутри, ему даже и хранить своего состояние не нужно.
Аноним 18/06/16 Суб 22:15:24  773546
Помогите разобраться, как развернуть рекурсивный вызов в последовательность применения функций. Я запутался. И еще: почему-то лямбда, примененная к значения, не печатает число на экран даже если использовать (display).

https://ideone.com/DZZxwq
Аноним 18/06/16 Суб 22:15:58  773547
Это снова я, нашет вот такой гист https://gist.github.com/shinmuro/9338262

Попробовал в репле:
user=> (defprotocol IEditName
#_=> (get-name [this])
#_=> (set-name! [this val]))
IEditName
user=> (deftype PersonName [^:volatile-mutable lname]
#_=> IEditName
#_=> (get-name [this] (. this lname))
#_=> (set-name! [this val] (set! lname val)))
user.PersonName
user=> (def pname (PersonName. "hoge"))
#'user/pname
user=> (def pname (PersonName.))

CompilerException java.lang.IllegalArgumentException: No matching ctor found for class user.PersonName, compiling:(/tmp/form-init3993095858741703866.clj:1:12)

Меня бы устроил этот вариант решения проблемы, я бы хранил внутреннее состояние Database в volatile-mutable, но вот теперь в конструктор нужно передавать все параметры, как-то это напрягает.

Ниже я в репле воспроизвел то, о чем говорил ранее:
user=> (defprotocol Readable1 (connect [this state]) (read-data [this state]))
Readable1
user=> (deftype Database [url] Readable1
(connect [this state] (assoc state :connection "Fake connection"))
(read-data [this state] (if (state :connection) "Lorem ipsum dolor" "ERROR")))
user.Database
user=> (deftype TextFile [name] Readable1 (connect [this state] nil) (read-data [this state] "File content"))
user.TextFile
user=> (def db (Database. "jdbc://blablalba"))
#'user/db
user=> (read-data db {})
"ERROR"

В этом решении состояние Database мне приходится таскать с собой, а для TextFile мне это состояние как корове пятая нога. Вот два варианта решения я придумал, но что-то мне подсказывает что оба они неправильные, поэтому прошу помощи здесь.
Аноним 18/06/16 Суб 22:18:03  773550
>>773546
На данный момент вывод моей программы такой:

10
625
5
#<procedure:...SICP/1.43/ex.scm:27:8>
#<procedure:...SICP/1.43/ex.scm:10:8>

Почему-то вместо значения выводится <procedure...

https://ideone.com/GXmoZS

А на идеоне это вообще не работает.
Аноним 18/06/16 Суб 22:19:49  773552
>>773550
>А на идеоне это вообще не работает
С этим я разобрался. Это из-за #!
https://ideone.com/GXmoZS
Аноним 19/06/16 Вск 00:19:20  773717
Что-то общелисперы совсем расслабились, тред уже кложуристы со схемерами начинают захватывать.
Аноним 19/06/16 Вск 00:42:28  773759
>>773513
Храни соединение в динамической переменной.
read-data будет её проверять и, если она не забинжена, будет устанавливать соединение.
Аноним 19/06/16 Вск 00:51:52  773773
>>773550
>Почему-то вместо значения выводится <procedure...
Ну подскажите, блеадь, что я делаю не так, когда разворачиваю рекурсию в последовательность применения функций.
Аноним 19/06/16 Вск 00:58:16  773778
>>773773
Скинь код, в котором это выводится
Аноним 19/06/16 Вск 01:00:38  773781
>>773778
Вот: https://ideone.com/GXmoZS
Хочу проверить, правильно ли я понимаю, как выполняется repeated, и убедиться в этом, вычислив значения развернутых выражений.
Аноним 19/06/16 Вск 01:01:26  773782
>>773781
Не выводится там никакой
><procedure:..
Аноним 19/06/16 Вск 01:09:33  773787
>>773782
В ракете выводится. И то, что не выводится вообще ничего - не то, что я хочу.
Аноним 19/06/16 Вск 01:16:25  773793
>>773787
Тебя интересуют две последнии лямбды, я так понимаю?
Аноним 19/06/16 Вск 01:22:41  773797
>>773787
В твоем коде ничего кроме двух чисел в stdout не должно выводиться.
Аноним 19/06/16 Вск 01:30:33  773801
>>773793
Да. Таким образом я хочу смоделировать вызов ((repeated inc 5) 0) на каждом этапе рекурсии. Чтобы убедиться в том, что я делаю это правильно, получившуюся функцию я хочу применить к тому же значению, к которому применяется ((repeated inc 5) 0) - к нулю.
Аноним 19/06/16 Вск 01:52:10  773816
>>773801
https://ideone.com/9r0U3b
Это ты хотел? Ты там лишних лямбд нафуговал без вызова
Аноним 19/06/16 Вск 12:55:02  774091
>>773816
Откуда там 555?
Аноним 19/06/16 Вск 12:55:51  774094
>>774091
А, не посмотрел, что там нету newline, и все три результата выводятся на одной строке.
Аноним 27/06/16 Пнд 15:41:42  781242
Анон, подскажи гайд по привинчиванию гуя к программе на CL.
Аноним 27/06/16 Пнд 22:29:03  781606
>>781242
Вариантов два
- Покупаешь LispWorks, используешь CAPI.
- Ищешь биндинги для библиотек тулкитов, пердолишься с ними.
Аноним 28/06/16 Втр 00:57:08  781765
>>781242
https://github.com/CodyReichert/awesome-cl#gui
Аноним 28/06/16 Втр 06:29:20  781848
>>781606
Есть ещё третий стул — McCLIM. Но у него только из стабильных бекендов только CLX.
>>781765
К тому списку нужно добавить qtools-ui. На данный момент он, пожалуй, самый пригодный для использования, но у него один большой минус — smoke. Автор вроде собирается избавиться от этого говна и запилить нормальные биндинги
Аноним 28/06/16 Втр 15:09:57  782266
Почему в CL
(= 1/10 0.1)
NIL
вот такая вот хуйня происходит?
Аноним 28/06/16 Втр 15:19:06  782277
>>782266
Целочисленная операция / примененная к 1 и 10 дает 0.
Floating point numbers нельзя сравнивать на равенство.
Аноним 28/06/16 Втр 15:20:17  782279
>>781848
>McCLIM
CAPI от него и пошел. И недалеко ушел (это комплимент).
CLIM сейчас активно пытаются допиливать и перепиливать.


Аноним 28/06/16 Втр 15:28:36  782289
14671169165020.jpg (35Кб, 212x212)
>>782277
>Целочисленная операция / примененная к 1 и 10 дает 0.
(= 1/10 0)
NIL
Аноним 28/06/16 Втр 15:30:34  782293
>>782266
Потому что одно число рациональное другое дробное?
Аноним 28/06/16 Втр 16:01:07  782338
>>782289
Тебе про (/ 1 10) говорят, ты даже не понимаешь, только картинками запасся
Аноним 28/06/16 Втр 16:15:07  782360
>>782338
>Тебе про (/ 1 10) говорят
(= (/ 1 10) 0)
NIL
>ты даже не понимаешь
Очевидно, что не понимаю - иначе и не спрашивал бы.
Аноним 28/06/16 Втр 16:46:25  782392
>>782360
> (print (/ 1 10))
> 0
Аноним 28/06/16 Втр 16:47:55  782396
>>782360
> (= (/ 1 10) 0)
> t
> GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
Аноним 28/06/16 Втр 16:59:42  782417
>>782392
> (print (/ 1 10))
> 1/10
>>782396
>(= (/ 1 10) 0)
>NIL
>This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
Аноним 28/06/16 Втр 22:59:54  782802
14671439941980.png (8Кб, 333x157)
>>782277
Что с вами не так то?
Аноним 28/06/16 Втр 23:58:19  782862
А можно ли на лиспе сделать типы в виде функций?
Аноним 29/06/16 Срд 00:11:46  782872
>>782862
На Shen можно. И даже больше.
Аноним 29/06/16 Срд 00:38:10  782885
>>782862
Параметризируемые шоле? Можно. Даже встроенные есть: integer &optional min max, cons &optional car cdr, simple-array type length и т.д
Аноним 29/06/16 Срд 00:49:04  782889
>>782266
http://ideone.com/O9vxO3
http://stackoverflow.com/questions/32889606/equality-check-with-fractions-in-common-lisp
Аноним 29/06/16 Срд 09:53:38  783004
14671832181610.jpg (34Кб, 400x267)
>>782889
Огромное спасибо!
Аноним 01/07/16 Птн 20:49:32  785472
Какая есть удобная библиотека для нейроных сетей?
Аноним 01/07/16 Птн 20:54:46  785478
>>785472
Сам не пользовался, но что-то слышал про mgl или clml. Пощупай их.
Аноним 01/07/16 Птн 20:56:55  785480
Пора бы, кстати, перекат запилить.
Аноним 01/07/16 Птн 21:05:23  785489
>>785486 (OP)
>>785486 (OP)
>>785486 (OP)
Перекатываемся

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 502 | 25 | 129
Назад Вверх Каталог Обновить

Топ тредов