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

Этого треда уже нет.
Это копия, сохраненная 23 июля 2016 года.

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

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

59 Кб, 500x527

Лиспотред №6 01 Апр, 18:07 #705167 В конец треда | Веб

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

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

Ответы>>723992>>759129>>769886>>773346

01 Апр, 18:12 #2 #705174

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

Ответы>>705183>>705184>>705186

01 Апр, 18:18 #3 #705183

>>705174
Common lisp

01 Апр, 18:21 #4 #705184

>>705174
Общелисп: https://github.com/TatriX/blue-water

01 Апр, 18:23 #5 #705186

>>705174
Clojure, Kawa.

Ответы>>705188

01 Апр, 18:24 #6 #705188

>>705186
Толсто. Во всех смыслах толсто.

Ответы>>706390

01 Апр, 18:43 #7 #705206

Реквестирую годный туториал по сигналам и рестартам в общелиспе.

Ответы>>705215>>705251>>705807>>732187

01 Апр, 18:58 #8 #705215

>>705206
http://lisper.ru/articles/restarts
Видел где-то ещё один, но сходу не припомню.

Ответы>>705222

01 Апр, 19:00 #9 #705222

>>705215
Читал оригинал. Ну ок.

01 Апр, 19:23 #10 #705251

>>705206
http://malisper.me/2015/08/05/debugging-lisp-part-4-restarts/

Ответы>>705359

01 Апр, 20:34 #11 #705359

>>705251
Ага, этот бложик тоже читал.

01 Апр, 20:50 #12 #705378

https://github.com/vseloved/lisp-crash-ru

02 Апр, 00:06 #13 #705484

Сап, гайз. Я тут решил окончательно упороться и запилить маленький вебапп на лиспе. Насколько полноценны местные фреймворки? CSRF, JSON-RPC, REST, ORM и другие баззворды поддерживаются?

Ответы>>705516

02 Апр, 00:52 #14 #705516

>>705484
Наркоман штолле сука? Пиши код блеять.

02 Апр, 10:32 #15 #705734

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

Ответы>>705759

02 Апр, 10:53 #16 #705759

>>705734
Попробуй библиотеками воспользоваться. Говорят, помогает от велосипедостроительства.

02 Апр, 12:36 #17 #705807

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

Ответы>>705816

02 Апр, 13:06 #18 #705816

>>705807
Пожалуй.

02 Апр, 14:58 #19 #705884

Музыкальный бамп.
https://github.com/byulparan/cl-collider
https://www.youtube.com/watch?v=JivNMDUqNQc&feature=youtu.be

02 Апр, 17:12 #20 #706007

http://picolisp.com/
https://habrahabr.ru/post/247965/
Лиспаны, что думаете насчёт этого странного, наркоманского язычка, именуемого пиколиспом? Вроде и из коробки всего полно, и ffi не замороченный, и веб-гуй пишется удобненько, и на ведро ставится без всяких танцев. Но какой-то он... ебанутый.

Ответы>>706098

02 Апр, 19:10 #21 #706098

>>706007
Наркомания какая-то. В топку его.

Ответы>>706292

02 Апр, 22:20 #22 #706292

>>706098
Мне кажется, что не так все однозначно. Надо бы придумать, где его можно применить.

Ответы>>706315

02 Апр, 22:34 #23 #706315

>>706292
Но зачем? Хотя про ведро где почитать можно?

02 Апр, 23:52 #24 #706390

>>705188
Хули толсто, Clojure - самый живой Lisp, а JVM - самая популярная платформа, с ней и посредством Kawa (Scheme) с успехом поиграться можно.

Ответы>>706400>>706436

03 Апр, 00:06 #25 #706400

>>706390
Уползи обратно в свой жава тред.

Ответы>>706464

03 Апр, 00:47 #26 #706436

>>706390
Но кложура - не лисп. Это вообще не язык программирования, а такой хипстерский дсл для скриптования жавы. Специально для тех, кому надоело программировать на xml.

Ответы>>706464

03 Апр, 01:11 #27 #706464

>>706400
>>706436
Лол. Понятно все с вами, ребята, уползаю в свой Scala-тред.

Ответы>>706474>>706482

03 Апр, 01:22 #28 #706474

>>706464
Хорошо что ты знаешь своё место.

03 Апр, 01:28 #29 #706482

>>706464
Тебя и там за кложу ссаными тряпками закидают.

03 Апр, 02:17 #30 #706517

Добавил в шапку документацию по Emacs Lisp и выделил Racket в отдельный язык.

03 Апр, 17:58 #31 #706909

Как думаете, почему лисп потерял популярность в 90-2000?

Ответы>>706917>>706944>>743870>>745700

03 Апр, 18:02 #32 #706917

>>706909
Упал с 2% до 1%? Ну хуй знает.

03 Апр, 18:15 #33 #706944

>>706909
Возможно, его вытеснили скриптопараши вроде перла, питона и пыха везде, где все возможности лиспа все равно были не нужны. В целом появляется все больше и больше специализированных языков и они утаскивают прогеров из метаязыков. А чтобы вытащить из жабы быдлокодера, ему еще нужно объяснить, зачем ему все эти фичи.

Ответы>>706951

03 Апр, 18:22 #34 #706951

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

Ответы>>706953>>706965

03 Апр, 18:23 #35 #706953

>>706951
Похуй, пиши код.

Ответы>>706976

03 Апр, 18:31 #36 #706965

>>706951
Возможно, это связано со смертью лисп-машин.

Ответы>>706968>>706976

03 Апр, 18:36 #37 #706968

>>706965
Ты ебанутый, лисп-машины нахуй не нужны. Питономашин же нет.

03 Апр, 18:47 #38 #706976

>>706953
Так я пишу. Хочу просто больше народу в секту.
>>706965
Как и не появились джава-машины.

Ответы>>707271

04 Апр, 02:13 #39 #707271

>>706976
Форт-машины зато появились, предлагаю начать на них фапать.

http://www.greenarraychips.com/

sage 04 Апр, 02:18 #40 #707273

(cons vsl '(not dead))

04 Апр, 07:51 #41 #707315

Поцоны, поясните за пик >>649344 (OP)
Зачем лисп похитил питона?

Ответы>>707940

04 Апр, 22:03 #42 #707940

>>707315
Потому что питон зло, очевидно.

04 Апр, 23:56 #43 #708050

Накидайте видосиков по лиспу.

Ответы>>708461

05 Апр, 14:50 #44 #708461

>>708050
Накидал, проверяй

Ответы>>708509

05 Апр, 15:47 #45 #708509

>>708461
Но за щекой ничего нет. Ты правильно хоть накидал?

05 Апр, 18:14 #46 #708633

Когда окончательно родят R7RS-large?
И когда запилят единый репозиторий библиотек с пакетным менеджером для всех реализаций схемы?
Спасибо.

Ответы>>708647>>708654

05 Апр, 18:32 #47 #708645

>>708642
Ебать ты шизофреник.

05 Апр, 18:34 #48 #708647

>>708633
Есть мнение, что не нужно - все живые Схемы обзавелись собственными расширениями над стандартами.

Ответы>>708658

05 Апр, 18:44 #49 #708654

>>708633
>И когда запилят единый репозиторий библиотек с пакетным менеджером для всех реализаций схемы?
Лол. Никогда. Это ж схема.

05 Апр, 18:52 #50 #708658

>>708647
Это путь в никуда.

Ответы>>708783

05 Апр, 20:59 #51 #708783

>>708658
Путь вникуда - это сравнимые реализации одного стандарта.

Ответы>>708936

05 Апр, 23:39 #52 #708936

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

Ответы>>708995

06 Апр, 01:21 #53 #708995

>>708936
Просто смирись, что Chicken Scheme это один язык, а Guile это другой.

07 Апр, 15:24 #54 #710181

пацаны, извечный вопрос, почему ни один диалект lisp не пригоден для промышленного использования? Где фреймворки? Где комьюнити? Этого всего нет.

Ответы>>710186>>710315

07 Апр, 15:32 #55 #710186

>>710181
1. Потому что ты школьник и не можешь в Google.
2. Потому что 90 процентов программистов - долбоебы, которые не могут в SICP.

Ответы>>710230

07 Апр, 16:59 #56 #710230

>>710186
> Где комьюнити?
> Потому что 90 процентов программистов - долбоебы,
С таким подходом коммьюнити и не будет.

Ответы>>711370

07 Апр, 19:02 #57 #710315

>>710181
Общелисп и есть самый настоящий промышленный язык. Учись пользоваться гуглом.
Фреймворки и сообщество есть, но немногочисленгое. Но не количество главное.

08 Апр, 22:10 #58 #711370

>>710230
так никому коммунити уровня тупых жабаиндусов или go-детей и ненужно

09 Апр, 13:19 #59 #711778

Реквестирую лисп челендж.

Ответы>>712121

207 Кб, 338x427

09 Апр, 14:28 #60 #711858

Как сделать чтобы показывало цвет в емаксе?

Ответы>>711868

09 Апр, 14:36 #61 #711868

>>711858
Гуглом пользоваться научись, полуебошный.
https://julien.danjou.info/projects/emacs-packages#rainbow-mode

Ответы>>711870

09 Апр, 14:37 #62 #711870

>>711868
Спасибо, пидор.

09 Апр, 18:54 #63 #712121

>>711778
Я бы за, но ближайшую неделю поучаствовать не смогу

Ответы>>712185

09 Апр, 20:22 #64 #712185

>>712121
Вообще я просил придумать какую-нибудь задачу, а не предлагал соревнование.

34 Кб, 545x421

09 Апр, 21:09 #65 #712203

Угадай мелодию.

Ответы>>712528

10 Апр, 10:45 #66 #712528

>>712203
Подмосковные вечера, давай сложнее.

Ответы>>712596>>712710

15 Кб, 279x284

10 Апр, 12:00 #67 #712596

>>712528

10 Апр, 14:31 #68 #712710

>>712528
В музыкалке учился что ли?

11 Апр, 03:54 #69 #713525

Есть ли возможность написать код на Lisp и залить в Ардуино?

Ответы>>713716

11 Апр, 04:03 #70 #713527

Я слышал, что в лиспе можно накодить функцию, которая будет способна строить другую функцию, а потом ее можно исполнять. Где это искать? Подскажите.

Ответы>>713537>>713538

11 Апр, 05:40 #71 #713537

>>713527
Лол, это называется "макрос".
defmacro гугли

Ответы>>713617

11 Апр, 05:42 #72 #713538

>>713527
Еще как вариант это называется "замыкание": http://letoverlambda.com/textmode.cl/guest/chap2.html

Но тут функция не совсем строится.

Ответы>>713617

21 Кб, 368x638

Типичный лиспер sage 11 Апр, 10:14 #73 #713593

Ответы>>713650

11 Апр, 10:53 #74 #713617

>>713537
>>713538
(defun thank-you () (format t "спасиб"))

11 Апр, 11:51 #75 #713650

>>713593
(cons 'vsl '(not dead))

Ответы>>713682

16 Кб, 578x129

11 Апр, 12:14 #76 #713682

>>713650
>'vsl '(not dead)
Спорное утверждение.

11 Апр, 12:22 #77 #713688

Кто-нибудь интересовался диалектами на которых до стандартизации лиспа пытались пилить ИИ?

Ответы>>713796

11 Апр, 13:14 #78 #713716

>>713525
А чо нет-то.

11 Апр, 15:10 #79 #713796

>>713688
Ты про маклисп что ли?

Ответы>>713866>>713883

11 Апр, 16:47 #80 #713866

>>713796
Интерлисп еще, например.

Ответы>>713883

11 Апр, 17:14 #81 #713883

>>713866
>>713796
Они выглядят весьма похожими на общелисп или елисп.

Ответы>>713894

11 Апр, 17:25 #82 #713894

>>713883
>Критики нового стандарта указывали на его раздутость и чрезмерное внимание, уделённое практическим требованиям, что привело к нарушению «функциональной чистоты» Лиспа и увеличению объёма поддерживающих его Лисп-систем.

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

Кто-нибудь пояснит что за "функциональная чистота" такая нарушилась после стандартизации и что за динамическое связывание было вместо которого запилили статические?

Ответы>>713904

11 Апр, 17:43 #83 #713904

>>713894
Может быть, под статическим связыванием подразумевается лексическая область видимости?
А функциональной чистотой, насколько мне известно, ни маклисп, ни интерлисп никогда не отличались.

42 Кб, 453x604

ХЕЛП 12 Апр, 16:35 #84 #714630

Emacs подсвечивает код как Emacs Lisp, не могу заставить подсвечивать как Common Lisp.

Та же ситуация с Flycheck.

Ответы>>714753>>714908>>715731

12 Апр, 19:14 #85 #714753

>>714630
Выкини emacs.

12 Апр, 21:28 #86 #714908

>>714630
Заскринь модлайн.

13 Апр, 02:20 #87 #715234

Антош, где-то видел список основных операторов (что-то около 12) на которых написано все остальное. Подскажи пожалуйста - никак не могу найти. Хочу писать только на них

Ответы>>715323

13 Апр, 10:09 #88 #715323

>>715234
Ебанутый что-ли?
http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm

Ответы>>715372>>715373

13 Апр, 12:03 #89 #715372

>>715323
Спасибо!. Не ругайся. Нюфак же

13 Апр, 12:06 #90 #715373

>>715323
Хотя я видел другой список. Там точно был cond

Ответы>>715415>>715438

13 Апр, 12:57 #91 #715415

>>715373
Ну так для какого тебе диалекто то надо?
http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Special-Form-Syntax.html

Ответы>>715436

13 Апр, 13:17 #92 #715436

>>715415
В общем посмотрел я на определения функции cond when and в sbcl. и все они написаны с использованием только if. Получается я могу только на if все писать. Вот же откровение.

Ответы>>715444

13 Апр, 13:19 #93 #715438

>>715373
cond это не "основной" оператор, а сахарок для if, реализующийся на макросах. Как в лиспе, так и в схеме.

Ответы>>715444

13 Апр, 13:28 #94 #715444

>>715438
Ага, я понял.>>715436

13 Апр, 16:21 #95 #715613

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

Ответы>>715652>>716226

13 Апр, 16:35 #96 #715625

Как сделать так, чтобы одна функция обрабатывала данные, поступающие в реальном времени, обрабатываемые параллельно 2(или больше) другими функциями? Я слышал, что Лисп может в подобную параллельную обработку или что-то такое.

Ответы>>715652

13 Апр, 16:54 #97 #715652

>>715613
http://www.gnu.org/software/guile/
>>715625
http://www.cliki.net/concurrency

283 Кб, 1821x1290

13 Апр, 17:53 #98 #715731

>>714630
Всё ебать я разобрался, спасибо пидоры за поддержку.

Ответы>>715733>>715734

13 Апр, 17:53 #99 #715733

>>715731
> 2017
> emask

Ответы>>716002

13 Апр, 17:54 #100 #715734

>>715731
Ты уже большой. Видишь, сам справился.

13 Апр, 19:19 #101 #715840

У меня какая-то иррациональная тяга к лиспу, как у некоторых русских к сербам. Что со мной?

Ответы>>715842>>715859

13 Апр, 19:20 #102 #715842

>>715840
Ты смайлодаун.

Ответы>>715858

13 Апр, 19:30 #103 #715858

>>715842
Маловероятно. А ты хуй)

13 Апр, 19:31 #104 #715859

>>715840
Потому что лучше интерактивной разработки пока ничего не придумали, очевидно.

Ответы>>715862

13 Апр, 19:33 #105 #715862

>>715859
Она есть дохрена где кроме лишпа.

Ответы>>715871

13 Апр, 19:33 #106 #715863

Что думаете про http://www.buildyourownlisp.com/ ?

Ответы>>715866>>715875

13 Апр, 19:35 #107 #715866

>>715863
>Learn C
Лерн си ан билд ватэвер ю факинг вонт. Бат нобади байс ит.

13 Апр, 19:37 #108 #715871

>>715862
Например?

Ответы>>715874

13 Апр, 19:38 #109 #715874

>>715871
REPL в любой скриптопараше присутствует. Это как минимум.
В не-скриптопараше тоже нередок.

Ответы>>715876

13 Апр, 19:38 #110 #715875

>>715863
Для этих вещей у нас есть хаскель.

13 Апр, 19:38 #111 #715876

>>715874
Не путай репл с интерактивной разработкой. Это не одно и то же.

Ответы>>715878

13 Апр, 19:38 #112 #715878

>>715876
В чём разница?

Ответы>>715885

13 Апр, 19:41 #113 #715885

>>715878
В том что при интерактивной разработке ты наслаиваешь приложение постепенно, как будто создаешь скульптуру. Ты мгновенно получаешь обратную связь и работаешь с образом своего приложения, а не работаешь по стандартному циклу "Отредактировал, сохранил, перезапустил". Реплы во всем что я пробовал кроме лиспа годятся только для проверки тривильных вещей, а не для полноценной разработки.

Ответы>>715927

13 Апр, 20:07 #114 #715927

>>715885
Говно ваша интерактиваня разработка. На нормальной статике в нормальной можно написать целый модуль без твоих циклов "Отредактировал, сохранил, перезапустил", потом этот модуль собрать, и он будет как положено работать.

Ответы>>715935

13 Апр, 20:09 #115 #715935

>>715927
Глядите-ка, жабомакака подтянулась, которая по 3 минуты ждет пока у неё хэлло-ворлд запустится.

Ответы>>715936>>715938

13 Апр, 20:12 #116 #715936

>>715935
Ну да, жабка же единственная статика, и нормальная статика, ничего слаще редьки ты не пробовал. Scala компилирутеся в 2 раза дольше

13 Апр, 20:14 #117 #715938

>>715935
Зато фрактал на клиспе работате моментально :3

Ответы>>715944

13 Апр, 20:16 #118 #715944

>>715938
>фрактал
факториал или фибоначчи, че там у вас за хеловорлд

13 Апр, 20:20 #119 #715955

Вскукарек :: [кококо] -> вскукарек
Вскукарек<кококо> вскукарек = new Вскукарек<кококо> ();

Ответы>>715956>>715958

13 Апр, 20:21 #120 #715956

>>715955
Это хачкель или жаба?

13 Апр, 20:23 #121 #715958

>>715955
>(cons 'вскукарек '(кок покпок))
Че сказать то хотел?

Ответы>>715971>>717261

13 Апр, 20:31 #122 #715971

>>715958
(with-вскукарек
(ко-ко-ко))

13 Апр, 21:25 #123 #716002

>>715733
Если не emask, то кто?

Ответы>>716006

13 Апр, 21:29 #124 #716006

>>716002
Ничего, так и приходится жрать это говно =(

Ответы>>716007>>716197

13 Апр, 21:29 #125 #716007

>>716006
SICP закончу и выкину к ебанной матери.

Ответы>>716197

14 Апр, 01:17 #126 #716197

>>716006
>>716007
Да ты же говноед.

14 Апр, 03:46 #127 #716226

>>715613
Для вставления в питон есть Hy в шапке.

14 Апр, 14:24 #128 #716500

(funcall (if (> (random 10) 5) #'+ #'-) 3 4)
VS
((if (> (rand 10) 5) + -) 3 4)

Дискасс.

Ответы>>716566

14 Апр, 16:02 #129 #716566

>>716500
бля, ну это специфический момент, тут-то не про синтаксис, а про устройство интерпретатора(одно окружение или несколько),

Ответы>>716570

14 Апр, 16:11 #130 #716570

>>716566
Это все тот же всем настоебавший lisp-1 vs lisp-2.
Лично мне больше нравится явный funcall, потому что я вообще не с первого раза вдуплил в середине другого куска кода что ((XYNTA) .!)))345)) это вызов функции собранной в результате вычисления.

Ответы>>716768

14 Апр, 19:03 #131 #716768

>>716570
так а что же еще, но мне (function +) (или во что там раскроется #'+) кажется немного хуетой, вообще, конечно дело вкуса

15 Апр, 02:20 #132 #717261

>>715958
>(setq вскукарек '(кок покпок))

15 Апр, 12:16 #133 #717428

Лиспаны, а макросы, которые могут создавать макросы это только в лиспе так можно или в других языках тоже есть подобное?
мимо-могу-немного-в-питон

Ответы>>717660>>717692

15 Апр, 16:31 #134 #717660

>>717428
Любые макросы могут создавать макросы.

Ответы>>717764

15 Апр, 17:04 #135 #717692

>>717428
Можешь генерировать macrolet-формы, например.

26 Кб, 753x261

15 Апр, 18:15 #136 #717764

>>717660
Сам себе отвечу.
http://stackoverflow.com/questions/2429240/c-preprocessor-macro-defining-macro

15 Апр, 18:27 #137 #717776

Ответьте без проверки через репл, чем равно значение:
(let (#'42) (+ . #'5))

Ответы>>717898>>717904

15 Апр, 19:43 #138 #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]

Ответы>>717842

15 Апр, 19:47 #139 #717842

>>717832
и что тебя удивляет? caddadadar - неопределенная функция, вложенные c*r определены до 4 уровня http://www.lispworks.com/documentation/HyperSpec/Body/f_car_c.htm

Ответы>>717847

15 Апр, 19:50 #140 #717847

>>717842
Шпасибо, т.е. это никак c*r не сократить? Странно, что в учебнике задание еще и сократить.

Ответы>>717856

15 Апр, 19:58 #141 #717856

>>717847
можно (caddar (cdadar '((1(2(3 4 цель)))))), а можно и самому определить
(defun caddadadar (x) (car (cdr (cdr (car (cdr (car (cdr (car x)))))))))

Ответы>>717865>>717878>>718130

15 Апр, 20:11 #142 #717865

>>717856
(destructuring-bind ((_ (_ (_ _ x)))) '((1 (2 (3 4 цель)))) x)

Ответы>>717866

15 Апр, 20:13 #143 #717866

>>717865
Точнее вот так
(destructuring-bind ((nil (nil (nil nil x)))) '((1 (2 (3 4 цель)))) x)

Ответы>>717878

172 Кб, 957x1079

15 Апр, 20:15 #144 #717871

Для тех, кого тоже заебывает вспоминать директивы формата: C-c C-d ~

15 Апр, 20:31 #145 #717878

>>717866
та я вообще на общелиспе мало писал, больше scheme
------------
>>717856

15 Апр, 21:25 #146 #717898

>>717776
Либо нил, либо ошибка.

Ответы>>717904

15 Апр, 21:32 #147 #717904

>>717776
>>717898
ну, я вот думаю, 47, логика такая
(let (#'42) (+ . #'5))
(let ((function 42)) (+ . (function 5)))
(+ . (42 5))
(+ 42 5)
47

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

Ответы>>718004

15 Апр, 23:06 #148 #718004

>>717904
Все правильно думаешь, хуле уж тут.
Эвалишь код, потом эвалишь + и все становится понятно.

15 Апр, 23:10 #149 #718010

Хочу обновить slime-proxy, чтобы РЕПЛ для parenscriptа юзать. Все правильно делаю?

16 Апр, 01:31 #150 #718130

>>717856
>(caddar (cdadar '((1(2(3 4 цель))))))
Так и есть скорее всего, ибо на том месте про определение функций в помине нет.

16 Апр, 12:10 #151 #718284

А покажите свои конфиги на emacs.

Ответы>>718298

16 Апр, 12:24 #152 #718295

Какой способ именования лучше: "foo?" или "is-foo"?
Первый вариант чуть-чуть лаконичней, но я спотыкаюсь на его чтении. Второй вариант длиннее, но в голове его удобно проговаривать — "из фу" он и есть "из фу", пауз при чтении не возникает.
Что является стандартом и почему?

Ответы>>718302>>718303>>718327

16 Апр, 12:29 #153 #718298

>>718284
У меня spacemacs. Конфиг показать не могу, т.к. ноута под рукой нет, но там и смотреть-то практически нечего.

16 Апр, 12:33 #154 #718302

>>718295
foo-p или foop
https://google.github.io/styleguide/lispguide.xml?showone=Predicate_names#Predicate_names

16 Апр, 12:35 #155 #718303

>>718295
Или если речь о схеме, то, кажется, общепринятым является foo?

16 Апр, 13:27 #156 #718327

>>718295
Это тебе вот такое дерьмо удобно проговаривать: (if is-foo) ?
is-* имеет смысл как свойство объекта.
(if shit.isTasty) ; читается нормально

Оба эти варианта читаются отлично:
(if foo?)
(if foop)

16 Апр, 15:09 #157 #718415

Я занимаюсь по http://progbook.ru/lisp/409-hyuvenen-mir-lispa-tom-1-vvedenie-v-yazyk-lisp.html
Мир Лиспа. Том 1. Введение в язык Лисп и функциональное программирование
В отличии от Practical Common Lisp там практические примеры после каждой главы и подача материала легко усваивается. Что скажите про нее? Щитаю, что она оптимальна для ньюфага.

Ответы>>718421

16 Апр, 15:24 #158 #718421

>>718415
PCL не для ньюфагов, а для тех кто знаю как программировать впринципе, хочет выучить CL.

16 Апр, 15:38 #159 #718434

Схемачи, почему этот код не запускается на линуксе?

https://ideone.com/hESYOY

Ответы>>718444

16 Апр, 15:59 #160 #718444

>>718434
https://ideone.com/WUgQli

В рекурсивном вызове accumulate проебал combiner

Ответы>>718461

16 Апр, 16:15 #161 #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

Ответы>>718462

16 Апр, 16:16 #162 #718462

>>718461
Запускаю так: ./1.32.scm

Ответы>>718479

16 Апр, 16:43 #163 #718479

>>718462
хз, с raket не работал, мб сверху, после
#!/usr/bin/racket
написать
#lang racket

Ответы>>718485>>718488

16 Апр, 16:48 #164 #718485

>>718479
Но я ж хочу использовать интерпретатор r5rs.

Ответы>>718491

16 Апр, 16:49 #165 #718488

>>718479
Надо же, это сработало.

16 Апр, 16:51 #166 #718491

>>718485
так задание же из sicp, там и mit-scheme подойдет(с ней sicp и проходил в свое время)

16 Апр, 17:55 #167 #718536

https://itch.io/jam/spring-2016-lisp-game-jam

17 Апр, 16:03 #168 #719246

Поясните за #. макрос. Читаю спеку и не понимаю, нахуя оно нужно.

Ответы>>719255>>719671

43 Кб, 600x415

17 Апр, 16:12 #169 #719253

Ответы>>719260

17 Апр, 16:14 #170 #719255

>>719246
Вроде это для макросов ридера, т.е. переопределение того, как текст преобразуется в s-exp, например, можносделоть инфиксную арифметику и т.д..

Ответы>>719297

17 Апр, 16:23 #171 #719260

>>719253
Пропущеная скобочка это не шутки.

17 Апр, 17:07 #172 #719297

>>719255
https://github.com/quickdocs/quickdocs-updater/blob/master/quickdocs-updater.asd

Вот пример использования. Нахуя оно там?

Ответы>>719329>>719671

17 Апр, 17:53 #173 #719329

>>719297
Ну а как ты сделаешь чтобы квадратная скобка преобразовывалась в #( без макросов ридера?
Или тебя что-то конкретное смущает? #\ = символ

Ответы>>719458

17 Апр, 19:30 #174 #719458

>>719329
Я спрашиваю про конкрентный макрос: #.
Как им пользоваться и нахуя он нужен.

Ответы>>719638

17 Апр, 21:34 #175 #719638

>>719458
А, я хз, похоже на сокращенный eval

17 Апр, 22:07 #176 #719671

>>719246
Для вычисления выражения на стадии чтения s-exp'а.
>>719297
Читает строку из файла и подставляет её в выражение, а потом уже раскрывается макрос defsystem

Ответы>>719694

17 Апр, 22:31 #177 #719694

>>719671
Ага, я так примерно и понял. Спасибо.

18 Апр, 19:23 #178 #720306

за спиной пара интерпретаторов на scheme, недописанные веб сервер на ней же, ворох других мелких проектов, стоит ли вкатываться в Common Lisp? Если да, с чего лучше стартануть? Интересуют темы метаязыковой абстракции, ии, возможно, анализа евстественного языка

Ответы>>720477>>720481

18 Апр, 21:50 #179 #720477

>>720306
Конечно, стоит, ведь в схеме жизни нет. Даже по меркам лиспосообщества.

18 Апр, 21:53 #180 #720481

>>720306
>с чего лучше стартануть?
С On lisp, например.

19 Апр, 02:15 #181 #720688

Я посматриваю за тредом иногда. Пиздец, почему такой долбоебизм царит?

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

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

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

Ответы>>720700>>720859>>720877>>720956>>720995

19 Апр, 02:32 #182 #720700

>>720688
Тебе в жаваскрипт тред.

19 Апр, 12:13 #183 #720859

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

30 Кб, 480x360

19 Апр, 12:44 #184 #720877

>>720688
Не распинайся, тут сидят зашоренные шизики, для которых всё что было после 80х - дохуя сложна, нинужно и нипанятна.

Ответы>>720879

sage 19 Апр, 12:47 #185 #720879

>>720877
лол пририсуйте туда эмблему кложи, а ебло замените на маккарти

19 Апр, 14:44 #186 #720956

>>720688
>>720688
> Главный недостаток это JVM с невозможностью реализовать tail call elimination
Используй loop-recur, он компилируется в цикл
> stop the world'ом
Для больших хипов есть Zing VM от Azul
> (для сравнения Ерланг/Эликсир -- в BEAM такого нет, там каждый актор заводит свой хип)
Если у тебя есть большой кусок данных, то он всё равно должен хранится в хипе какого-то актора, смекаешь?
> И да, если вам понадобятся Акторы, то есть вполне рабочие биндинги к Акке.
Нахуй акторы, есть core.async

Ответы>>721051

19 Апр, 15:26 #187 #720995

>>720688
Но то же самое есть и в общелиспе. Только в отличие от кложи он является языком полноценным, а не дырявойыми оберткойами (таки три платформы - три разных языка) вокруг жавы, жс и додиеза.

Ответы>>721051>>721133

19 Апр, 16:42 #188 #721051

>>720956
>то он всё равно должен хранится в хипе какого-то актора
В ерлаше бинари >64КБ идут в отдельный хитровыебанный бинарный хип.

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

>>720995
Общелисп - обычная переусложнённая императивная говнина с макросами.

Ответы>>721132

19 Апр, 18:04 #189 #721132

>>721051
> В ерлаше бинари >64КБ идут в отдельный хитровыебанный бинарный хип.
Что такое "бинари"? Большой вектори или мапа это "бинарь"? И какой в этом бинарном хипе GC алгоритм?
> Это неудобно.
Шта? По-твоему акторы удобнее чем CSP?

Ответы>>721307

19 Апр, 18:05 #190 #721133

>>720995
> Но то же самое есть и в общелиспе.
А как насчёт
> - очень развитое комьюнити

Ответы>>721220

19 Апр, 20:02 #191 #721220

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

19 Апр, 21:22 #192 #721307

>>721132
Что такое "бинари"?
Бинарный тип данных.
> Большой вектори или мапа это "бинарь"?
Нiт, но при желании их обоих можно скастовать в бинари. Ну или получить такие сразу, из сети/файла/мемори.
>И какой в этом бинарном хипе GC алгоритм?
Висят до тех пор, пока на них не останется ссылок откуда бы ни было. В остальном как обычно.

>Шта? По-твоему акторы удобнее чем CSP?
Разумеется. Анониманя связь по каналам говно, работать без примитивов процесс/узел крайне неудобно. Модель акторов - это самый общий конкурентный концепт, средствами которого можно выразить большинство остальных, тот же ССS или CSP, обратное невозможно.

Ответы>>721335

19 Апр, 21:37 #193 #721335

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

19 Апр, 22:10 #194 #721357

Анончики, так уж вышло, что для экзамена мне придётся выучить autoLisp. Посоветуйте годноты.
Алсо, сам уже больше года пилю бэкенд на дотнете, специальность обучения интересная, вот и не ливаю из универа

Ответы>>721462

20 Апр, 00:39 #195 #721462

>>721357
Врядли здесь кто-то из анонов хоть раз щупал этот автолисп.
Если не найдется нормальной литературы по автолиспу, попробуй поверхностно проштудировать pcl (ссылки в шапке), чтобы раобраться что да как.

21 Апр, 23:55 #196 #723154

А я вот начал на работке на лиспе лабать. Полет нормальный.

Ответы>>723167

22 Апр, 00:16 #197 #723167

>>723154
Подробности?

Ответы>>723173

22 Апр, 00:25 #198 #723173

>>723167
Ну надо было сделать парсер одной фигни. Залабал на общелиспе. Оче годно. Плюс пробую тут на общелиспе селениум насиловать. Тоже норм вроде.

Ответы>>723175

22 Апр, 00:26 #199 #723175

>>723173
Парсер, кстати, модный. Интерфейс на clack + ningle + cl-markup + parenscript + css-lite

Ответы>>723181

22 Апр, 00:38 #200 #723181

>>723175
А чому так много либ для одного парсера? В Clojure вот один Instaparse справляется.

Ответы>>723185

22 Апр, 00:47 #201 #723185

>>723181
Это либы для интерфейса. Сам парсер юзает dexador + plump + jsown + cs-csv

22 Апр, 21:58 #202 #723992

>>705167 (OP)
Запилил себе иконку уютную - делюсь, мало ли, пригодится кому.
Тред про Emacs проебался куда-то, потому сюда.

Ответы>>723994

281 Кб, 900x900

22 Апр, 21:58 #203 #723994

>>723992

22 Апр, 22:16 #204 #724010

Допилю все методы и отправлю в квиклисп. Все правильно делаю?
https://github.com/TatriX/cl-selenium-webdriver

Ответы>>724086

22 Апр, 23:34 #205 #724086

>>724010
Этот селениум через вебапи работает шоле?

Ответы>>724104

23 Апр, 00:03 #206 #724104

>>724086
Это биндинги к Selenim Server'у
Работает через REST API, да.

21 Кб, 263x192

23 Апр, 22:27 #207 #724894

Мне надо построить массив, привязанный к пикселям в виде 3дэ сферы, а также чтобы в зависимости от функций, изменяющих числа массива менялся цвет тех пикселей, что привязаны к массиву. Что посоветуете для всей этой графики на лиспе?

Ответы>>725220>>726129

24 Апр, 12:00 #208 #725220

>>724894
cl-sdl2, sdl2kit, cl-opengl

Ответы>>726129

25 Апр, 07:39 #209 #726129

>>725220
Ему чето типа plotlib нужно, а не свой движок писать.
>>724894
Глянь вон там http://cliki.net/plotting

25 Апр, 21:24 #210 #726923

Гайс, помогите плиз. Нужно сделать лабу по автолиспу, а в нем я не особо шарю. Достаю из файла строку, например "-1 10 9.87 -4.08". Как мне сделать из нее лист чисел, чтобы потом их можно было отсортировать по знаку, большее/меньшее, целые, дробные и тд.

Ответы>>726962>>727041

25 Апр, 22:10 #211 #726962

>>726923
#include <common-lisp.h>
Ну и дальше пишешь на общелиспе.

Ответы>>726999

25 Апр, 22:48 #212 #726999

>>726962
Надо именно автолиспом сделать

25 Апр, 23:26 #213 #727041

>>726923
Дай ссылку на документация, сходу не гуглится.

Ответы>>727048

25 Апр, 23:32 #214 #727048

>>727041
>>727041
Не понял, что именно надо?

Ответы>>727068

25 Апр, 23:33 #215 #727052

Emacs'еры использующие org-mode тут есть?
Скиньте свои custom agenda или порекомендуйте хороших, а то говно получается.

25 Апр, 23:49 #216 #727068

>>727048
Я имел в виду что-то типа общелисповского clhs ( http://www.lispworks.com/documentation/HyperSpec/Front/index.htm ),
Но уже нагуглил вот это http://stackoverflow.com/questions/15393797/lisp-splitting-input-into-separate-strings (последний ответ). Почти твоя задача, осталось только строки к числам привести. Код там, конечно, - говно а мож просто автолисп - говно, но суть должна быть понятна.

26 Апр, 20:54 #217 #727896

Открыли ChezScheme

Ответы>>727897>>727932

26 Апр, 20:54 #218 #727897

>>727896
https://github.com/cisco/ChezScheme

26 Апр, 21:41 #219 #727932

>>727896
Ну и хуй с ним?

26 Апр, 22:15 #220 #727964

Тут ни кто для org-mode не пишет лисп-скрипты?

Ответы>>728022>>728074

26 Апр, 23:12 #221 #728022

>>727964
Там столько всего из коробки, что не приходится. Что нужно-то?

27 Апр, 00:11 #222 #728067

Антохи, дошел до рисовалок в SICP'е, а DrRacket не могет в элементарные рисовалки. Че делать?

Ответы>>728077

27 Апр, 00:24 #223 #728074

>>727964
Я писал для org-drill. И то не скрипт, а просто интерактивную функцию.

27 Апр, 00:25 #224 #728077

>>728067
Как не могет? Вроде в последний раз мог

Ответы>>728088

27 Апр, 00:45 #225 #728088

>>728077
скачал sicp.plt пакет, теперь DrRacket могет в beside/below, но все равно не могет в wave/rogers

Ответы>>732029

01 Май, 03:29 #226 #731724

(bump)

01 Май, 19:21 #227 #732029

>>728088
rogers тебе не понадобится, он там для примера
wave напиши сам, мудак чтоли?

01 Май, 23:46 #228 #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, т.е. инициирует раскрутку стека к текущему блоку.

Ответы>>732198

02 Май, 00:07 #229 #732198

>>732187
Ебать ты наркоман. Представляю тебя плешивым дрыщем, сидящем в 6 сантиметровых очках на бабкином стуле и упарывающемся скобками.

Ответы>>732205

182 Кб, 1280x859

02 Май, 00:24 #230 #732205

>>732198
немного не угадал

Ответы>>732210>>732224

02 Май, 00:30 #231 #732210

>>732205
Да, про очки ошибся. В остальном все сходится.

Ответы>>732211

111 Кб, 960x960

02 Май, 00:33 #232 #732211

>>732210
попизди мне тут

Ответы>>732224>>734250

02 Май, 01:49 #233 #732224

>>732205
>>732211
Поймаю в Бостоне - ебальник разобью. Хотя стоп, не поймаю, тебя же не возьмут в джетбрейнс ОПЯТЬ, ХАХАХА.
jdevelop

Ответы>>732228

02 Май, 02:06 #234 #732228

>>732224
Воу воу кто ето, ето бостонский алкаш на связи!

03 Май, 21:03 #235 #733468

Господа, что не так у меня в сорусе?

https://ideone.com/NEDXM1

Ответы>>733504>>733514

03 Май, 21:56 #236 #733504

>>733468
Очевидно что у тебя нет так, это Scheme, а не Common Lisp

03 Май, 22:12 #237 #733514

>>733468
25 строка
>>(lambda (x) (x))
Тут ты не возвращаешь x, а вызываешь его. Правильно будет
>>(lambda (x) x)

04 Май, 17:28 #238 #734250

>>732211
love5an, ты шоле?

Ответы>>735623

06 Май, 02:34 #239 #735623

>>734250
он

06 Май, 15:57 #240 #736019

Привет, lisp'аны. В общем, я читал SICP, делал задачки, что-то получалось. В общем, такой вопрос: я уже прочитал 3 главу целиком, перешел к 4 и ничего не понимаю. Точнее, если напрягаюсь, то понимаю, но мне стало неинтересно. Есть ли смысл читать после 3 главы? Отпишитесь, а то я не знаю, как-то жалко бросать начатое, но в главе про интерпретатор столько всякой мути, что аж рили неинтересно.

Ответы>>736067>>736608

06 Май, 16:43 #241 #736067

>>736019
Неинтересно - пропусти. Зачем себя мучать-то?
Как заинтересует, так и вернешься.

Ответы>>736078>>736608

06 Май, 16:57 #242 #736078

>>736067
Ну, в принципе, я тоже так думаю. Потому что, когда неинтересно, чтение превращается реально в муки.

06 Май, 22:38 #243 #736438

Зацените лиспаны, прикрутил репл с автодополнением к емаксу: https://github.com/TatriX/kite-mini.el
Через гуглодебагер.

Ответы>>736440>>736448>>738016

06 Май, 22:39 #244 #736440

>>736438
Самое главное то забыл: для js.

Ответы>>736443

06 Май, 22:40 #245 #736443

>>736440
А еще забыл сказать что пока оно в ветке https://github.com/TatriX/kite-mini.el/tree/dev и не готово до конца.

Ответы>>737261

06 Май, 22:44 #246 #736448

>>736438
Хуево, что только для хрома. У фурифокса нет аналогичного протокола?

Ответы>>736464

06 Май, 23:09 #247 #736464

>>736448
Есть. Но ебаться не хочется. Уж слишком фурифокс тормозной для разработки.

07 Май, 05:05 #248 #736608

>>736067
а что ему дальше останется, 5 глава, которая целиком опирается на 4ую?(из интерпретаторов ваяем компиляторы)
>>736019
вообще, если с английским хорошо, можешь лекции на ютубе глянуть(MIT, ведут сами Сассман, Абельсон, на рутрекере видел еще 2010 года лекции из Беркли, но не смотрел)

07 Май, 05:11 #249 #736609

https://habrahabr.ru/post/282986/
Сегодня утром вот поглядел видео и прочитал статью. С автором несогласен. С Сасменом, тоесть.

Ответы>>736612

07 Май, 05:50 #250 #736612

>>736609
поясни мысль, что именно не нравится в его рассуждениях?

Ответы>>736614

07 Май, 06:01 #251 #736614

>>736612
Я неточно выразился, я не несгласен, я просто его аргумент убедительным не нахожу. То, что теперь инжинерия поменялась таким образом, как он сказал, вовсе не означает, что тут же студентоту надо учить мануалы читать. Помему, свои костыли и велосипеды ценнее в практическом смысле, чем использование чужих. Именно при обучении, не в работе.

26 Кб, 942x195

07 Май, 20:59 #252 #737261

>>736443
Автор потихоньку мержит в апстрим, а пока самое свежее тут: https://github.com/TatriX/kite-mini.el
Прикрутил отправку сообщений в консоль. Например, если во время загрузки скрипта все пошло по пизде, мы увидим пикрелейтед.

Обновление замыканий, конечно, охуенная вещь.

Ответы>>737909

08 Май, 23:25 #253 #737909

>>737261
А чо там, полное обговление кода без проблем проходит? Ну т.е. допустим, пишу я код на каком-нибудь йобаскрипте, потом модуль транслирую в жс и отправляю браузеру. Он нормально обновится?

Ответы>>737915

08 Май, 23:36 #254 #737915

>>737909
Поддержка сурсмапов в планах. Пока её нема, хотя для личного использования можно в 5 строчек написать.

09 Май, 04:03 #255 #738016

>>736438
Пиздуй игру делать.

Ответы>>738265

09 Май, 14:14 #256 #738238

Эй, лиспаны, может кто по-хардкору пояснить, как в ecl создать so-шку из asdf-системы. Пробовал так https://common-lisp.net/project/ecl/static/manual/re55.html, но чот оно на выходе выдает эльф.
И ещё, кто-нибудь ковырял clasp?

09 Май, 14:54 #257 #738265

>>738016
Я для игры в частности и делаю. Оче удобно.

Ответы>>738268

09 Май, 14:55 #258 #738268

>>738265
На чистом жс хуяришь? Без всяких elm, clojurescript и т.п.?

Ответы>>738272>>738276

09 Май, 15:08 #259 #738272

>>738268
Игру-то? Да.

Ответы>>738278

09 Май, 15:15 #260 #738276

>>738268
Ramda хотя бы используется?

Ответы>>738444

09 Май, 15:15 #261 #738278

>>738272
А чего так? Принципиально не используешь или просто лень разбираться?

Ответы>>738444>>738446

09 Май, 17:23 #262 #738444

>>738276
На работке пользуемся. Когда я проект начинал про неё еще никто не слышал.
>>738278
В данном проекте принципиально. Воообще у всех транспайлеров есть куча проблем, с которыми не очень хочется ебаться. Даже несчастный babel и тот мозг ебет, что уж говорить про остальных.

09 Май, 17:24 #263 #738446

>>738278
Кложурскрипт выглядит вкусно, но жаботормознутость перечеркивает все достоинства.

Ответы>>738482

09 Май, 18:09 #264 #738482

>>738446
>Кложурскрипт
>жаботормознутость
Что?

Ответы>>738510

09 Май, 18:41 #265 #738510

>>738482
Оно по твоему само себя компилит? Там нужен жабобол тормозной.

Ответы>>738513>>738536

09 Май, 18:44 #266 #738513

>>738510
Разве кложескрипт не на жс написан?

Ответы>>738516>>738518

09 Май, 18:47 #267 #738516

>>738513
Ещё тормознее.

09 Май, 18:48 #268 #738518

>>738513
https://github.com/clojure/clojurescript/wiki/Quick-Start
> Download the standalone ClojureScript JAR.

Ответы>>738636

09 Май, 19:05 #269 #738536

>>738510
Ты совсем поехавший?

09 Май, 19:17 #270 #738544

Пока долбоебы плачут от того что нужно скачать О ГОСПАДИ JAR, стартапы на Кложуре получают миллионные фандинги
http://techcrunch.com/2015/06/30/trucker-path-raises-20m-to-claim-the-uber-for-truckers-moniker/

Ответы>>738558

09 Май, 19:38 #271 #738558

>>738544
С таки же успехом это дерьмо могли написать на phpscript.

Ответы>>738868>>739215

09 Май, 21:37 #272 #738636

>>738518
Что за хуйня? В кложескрипте нет функции compile или хотя бы eval, потому что транслятор на яве^Wкложуре?

Ответы>>739046

10 Май, 02:30 #273 #738868

>>738558
люди делятся на два типа: одни зарабатывают деньги, а другие неудачники. Сейчас деньги зарабатывают они.

Ответы>>739060

10 Май, 11:17 #274 #739046

>>738636
Там есть eval, но для этого нужно специальный билд собирать (ибо много весит):
https://github.com/clojure/clojurescript/wiki/Optional-Self-hosting

А по поводу необходимости ставить JDK, то тут дело скорее в инструменте управления проектами (Leiningen), который написан на обычной JVM-ной Кложе.

10 Май, 11:42 #275 #739060

>>738868
> одни зарабатывают деньги, а другие
сидят на трубах скобках

88 Кб, 643x421

10 Май, 14:27 #276 #739215

>>738558
ПГ так не думает

Ответы>>739296>>739784

10 Май, 15:42 #277 #739296

>>739215
Всё правильно делает, нигерам в общелисповском сообществе не место.

10 Май, 21:36 #278 #739784

>>739215
очевидно блядь. Кложура это лучшее что случалось с Лиспом эвар. Только нищие долбоебы до сих пор этого не поняли.

Ответы>>739809

10 Май, 21:45 #279 #739809

>>739784
Нет, кложура слишком узкоспециализирована.

Ответы>>740059

11 Май, 03:58 #280 #740059

>>739809
показательный даун. эталонный

Ответы>>740061>>740220

11 Май, 04:03 #281 #740061

>>740059
Clojure объективно не дотягивает до CL.
Как язык - никакой. Производительность - так себе. Ну про минусы JVM даже лень рассказывать. Там много говна, начиная от recur, и заканчивая невозможностю нормально делать hot code reload и невнятными стектрейсами.

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

Думаю, причина ответа ПГ именно в этом.

Ответы>>740278

11 Май, 12:05 #282 #740220

>>740059
Знаешь ли, далеко не всем jvm подходит как платформа, а в другие кложура by design не умеет.

Ответы>>740280

11 Май, 13:22 #283 #740278

>>740061
> Как язык - никакой.
Гораздо продуманней чем CL.
> Производительность - так себе.
Лучше чем у CL, если расставить пару тайпхинтов
> невозможностю нормально делать hot code reload
Что блять? Любой динамический var свапается в любой момент. Ты, видимо, не знаешь как на низком уровне делается code reload и веришь в какую-то магию.

Ответы>>740372>>740380

11 Май, 13:22 #284 #740280

>>740220
Привет, ClojureScript.

Ответы>>740309

11 Май, 14:09 #285 #740309

>>740280
Это другой язык с другим сообществом и библиотеками.

Ответы>>740385

11 Май, 15:39 #286 #740372

>>740278
>Лучше чем у CL, если расставить пару тайпхинтов
Ага, видел я эти "пару тайпхинтов", когда код переписывается в ещё более нечитабельную яву-дрисню со скобками.

11 Май, 15:46 #287 #740380

>>740278
>Что блять?
Насколько мне известно, там обновление кода через жопу сделано, из-за чего на ведроиде приходится сначала генерировать dex, а потом подгружать.
другой анон, если чо

Ответы>>740388

11 Май, 15:49 #288 #740385

>>740309
Нет.
Сообщество то же - все кто используют ClojureScript на фронте, используют Clojure на бэке.
Библиотеки, не работающие напрямую с платформой, работают и там и там.
Например core.async - библиотека CSP и корутин - работает и там и там. Timbre, specter, instaparse, да практически все либы, которые имеет смысл делать кроссплатформенными - сделаны кроссплатформенными (после того как в 1.7 ввели reader conditionals).

Ответы>>740398>>740428

11 Май, 15:53 #289 #740388

>>740380
С Андроидом ситуация такая:
Dalvik не позволяет использовать classloader в рантайме. А в Clojure всё на этом построено, т.к. исполнение коде в рантайме делается через класслоадер.
Поэтому для Android приходится делать AOT компиляцию и отказываться от исполнения кода в рантайме.
На других JVM таких проблем нет.

Ответы>>740398

11 Май, 15:58 #290 #740398

>>740385
>Сообщество то же - все кто используют ClojureScript на фронте, используют Clojure на бэке.
Судя по проектам на гитхабе, пишут только на кложескрипте, видимо на серверную сторону выбирают что-то полегче jvm.
>Библиотеки, не работающие напрямую с платформой
Таких не бывает.
>Например core.async
Насколько я помню, там код продублирован отдельно для кложескрипта и отдельно для кложуры.
>>740388
Ну ок. А существующие объекты после обновления класса используют новую или старую версию?

Ответы>>740427>>740433

11 Май, 16:26 #291 #740427

>>740398
> Судя по проектам на гитхабе, пишут только на кложескрипте, видимо на серверную сторону выбирают что-то полегче jvm.
Из чего ты деалешь такие выводы? Не знаю ни один проект, где так делают.
> Таких не бывает.
Смотри список выше.
> Насколько я помню, там код продублирован отдельно для кложескрипта и отдельно для кложуры.
Да, действительно. Но там дело в том, что она вышла во времена 1.6, а переписывать они не стали.
Посмотри остальные популярные либы, там всё через *.cljc

Ответы>>740438

11 Май, 16:26 #292 #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]
Разве могут быть в __таком__ языке библиотеки, на работающие с платформой. И ты ещё что-то про бóльшую продуманность говорил.

Ответы>>740434>>740435>>752759>>753769

11 Май, 16:29 #293 #740433

>>740398
> Ну ок. А существующие объекты после обновления класса используют новую или старую версию?
Там не сам класс меняется, а используется фича исполнения кода при загрузке класса.
Динамичность достигается через varы, которые можно свапать (с определённой семантикой).

Ответы>>740438

11 Май, 16:29 #294 #740434

>>740428
Список выше.

11 Май, 16:30 #295 #740435

>>740428
Кстати, почему просто slurp не используешь?

Ответы>>740438

11 Май, 16:33 #296 #740438

>>740435
Это ты у рича хикки спроси, почему он повсеместно использует подобную дрисню вместо того, чтобы один раз сделать нормальную обертку.
>>740427
>Из чего ты деалешь такие выводы?
Я как-то искал хоть какие-нибудь проекты на кложуре. И это оказалось не так-то просто, везде один лишь кложескрипт.
>>740433
А, понял. Ну а с объектной системой как? Допустим, написал я в кложе класс, создал несколько объектов, а потом класс изменил.

Ответы>>740481

11 Май, 17:41 #297 #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)

Ответы>>740662

36 Кб, 300x320

11 Май, 17:52 #298 #740487

Что в ОП-посте делает Tcl?

Ответы>>740701

11 Май, 20:45 #299 #740662

>>740481
>Кусок кода с BufferedReader выложен на сайте чтобы проиллюстрировать интероп с JVM.
Тот кусок кода взят из реализации кложескрипта с гитхаба.

Ответы>>740767

11 Май, 21:11 #300 #740701

>>740487
А что не так? Tcl - типичный лисп

Ответы>>749038>>758160

11 Май, 21:14 #301 #740704

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

Ответы>>740768

11 Май, 22:02 #302 #740767

>>740662
Нашёл. Это используется в чтении ответа от процесса ноды. В обычной жизни такое пишется нечасто.
Кстати, в каких языках (кроме Эрланга) читать бинарный поток удобнее?

Ответы>>740836

11 Май, 22:02 #303 #740768

>>740704
Поделись впечатлениями.

11 Май, 22:39 #304 #740836

>>740767
Да там в любой модуль загляни - везде ява-кишки ковыряют.
>Кстати, в каких языках (кроме Эрланга) читать бинарный поток удобнее?
Ну, как-то на общелиспе pbf разбирал. Вроде не так уж и плохо, хотя эрланговским сопоставлением с образцом было бы удобнее, да.

11 Май, 22:51 #305 #740841

Clojure язык довольно убогий, но популярный.

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

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

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

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

_мимо лавсан_

Ответы>>740845

11 Май, 22:54 #306 #740845

>>740841
А что там не так с кодрелоадом, макросами и мультиметодами?

Ответы>>740851

11 Май, 23:01 #307 #740851

>>740845
рекомендую потыкать CL, разница станет очевидна

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

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

мимо лавсан

Ответы>>740893>>740960

11 Май, 23:44 #308 #740893

>>740851
Жалко только что они из этих лиспов кучу легаси притащили. А еще напрягает что в стандартной либе нихуя нужного нету. Впрочем, есть квиклисп. Но хочется чтобы хотя бы как в елиспе было: на каждый чих готовая функция.

Ответы>>740953

12 Май, 00:38 #309 #740953

>>740893
ну так а что им было делать
80, куча лиспов, давление вендоров

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

алсо, рекомендую помогать мне пилить новый стдлиб
https://github.com/Lovesan/CLR/

Ответы>>740964>>740976>>740991

12 Май, 00:45 #310 #740960

>>740851
>это скорее что-то типа Python - типа, сделаем на глазок, быстренько и красивенько, поднимем хайп, а на остальное похуй
Что не так с Питоном?

Ответы>>740966>>741000

12 Май, 00:50 #311 #740964

>>740953
Зачем создавать новый велосипед? Почему бы не допилить сузествующий (cl21, например)?
Ну и хоть бы планы/цели расписал.

Ответы>>741000

12 Май, 00:51 #312 #740966

>>740960
А что с ним так?

Ответы>>740972

12 Май, 00:53 #313 #740972

>>740966
я тебя спросил

Ответы>>740992

12 Май, 00:55 #314 #740976

>>740953
>прошло полгода
>200 sloc

Давай, удачи!

Ответы>>741000

12 Май, 00:59 #315 #740991

>>740953
Лучше бы показал хоть один написанный тобой проект на CL.

Ответы>>741005

12 Май, 01:00 #316 #740992

>>740972
Нет, не меня

12 Май, 01:08 #317 #741000

>>740964
cl21 это в осн. синтаксический сахар. А у меня там задатки на норм стдлиб, на функциональность. Слизываю с CLR потихому, но а откуда еще слизывать?
>>740976
работы дохера
>>740960
- Неконсистентность семантики("чойта тут воткунто?" пример - print - функция или встроенное чото? Или там, лямбды)
- Плохая обратная совместимость, конфликт 2 и 3
- Тормоза. Бля, CPython(99% питона в мире) тормозит как пиздеееееец. Бедная gentoo евпоча.
- GIL
- Общая, какая-то, ну не знаю, нейстройность языка. Ну вот нахуя можно использовать окружение как dict? Что за ебаный бред? Это же не скомпилировать, и не оптимизировать нормально. Что за self как явный аргумент, хотя у нас классическое классовое ООП, а не JS, и не смоллтолк? Итд.
- Куча хипстеров, с говнобиблиотеками, которым дай волю, ядро прыщей на питон перепишут.
- Вообще, все это easy(в противоположность simple), типа php, питона итд, оно провоцирует говнокод и непрофессионализм в программировании. А потом мы удивляемся, почему так упали рейты.
- Итд. Спать хочу, забыл апрельские тезисы

Ответы>>741016

12 Май, 01:12 #318 #741005

>>740991
два самые крутых проекта, которые я когда-либо делал для опенсорса на CL, это virgil и doors.
На гитхабе есть:
https://github.com/Lovesan
Первый - FFI с подходом полной сериализации в/из сишной памяти. Типа, абсолютно прозрачная работа с сишкой и вообще foreign кодом как с лисповыми объектами.
Doors - интерфейсинг WinAPI, но самая доделанная часть, за которую мне не раз спсб говорили - это интерфейс к COM. Можно в т.ч. и создавать свои COM-сервера(для SBCL и других не умеющих в DLL только out-of-process ессно).

12 Май, 01:18 #319 #741016

>>741000
>cl21 это в осн. синтаксический сахар.
Ну не совсем. Там больше реструктуризация, избавление от устаревешего говна, прикручивание всяких александрий.
>Слизываю с CLR потихому, но а откуда еще слизывать?
С дотнета шоле или того забытого проекта или он не clr звался, а как-то похоже обновления общелиспа?
>Бедная gentoo евпоча.
Она бедная из-за libbash, а не только питона.

Ответы>>741019

12 Май, 01:21 #320 #741019

>>741016
да, CLR типа дуднет.
Если полезть в мой код, можно наблюдать там прямой пиздинг интеллектуальной собственности

Ответы>>741432

12 Май, 16:04 #321 #741432

>>741019
А ClojureCLR использовать не думал? Там интеграция с дотнетом теснее некуда.

9 Кб, 651x64

14 Май, 20:48 #322 #743663

Подчеркивает как unreachable code (slime + sbcl), хотя вроде все работает. Почему так?

Ответы>>744110>>744116>>744119

15 Май, 02:08 #323 #743870

>>706909
>Как думаете, почему лисп потерял популярность в 60-70?

15 Май, 13:49 #324 #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 Май, 13:57 #325 #744116

>>743663
> deleting unreachable code
> --> LET IF AND IF AND THE IF PLUSP >
А, может быть, там подставляется проверка аргументов на неотрицатльность, а затем удаляется, т.к. из их типов ясно, что они положительны.

Ответы>>744119

15 Май, 14:00 #326 #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 Май, 16:49 #327 #744272

Поясните за ньюлисп, почему там интерпретатор 1 мегабайт весит? Разве так бывает?

Ответы>>744283

15 Май, 17:06 #328 #744283

>>744272
Почему нет-то? Это ж просто интерпретатор, а не образ лисп-системы как у общелиспа

Ответы>>749304

17 Май, 12:41 #329 #745700

>>706909
AI Winter

20 Май, 08:42 #330 #748136

http://lisp-lang.org/
Теперь и у лиспа есть хипсторский сайт. Дотянулись таки... суки

Ответы>>750030

21 Май, 10:02 #331 #749038

>>740701
Где мои скобочкии??

Ответы>>749261

21 Май, 14:26 #332 #749261

>>749038
]]]]]]]}}}}}

Ответы>>749378

21 Май, 15:02 #333 #749304

>>744283
>Это ж просто интерпретатор, а не образ лисп-системы как у общелиспа
А чем ньюлисп хуже/неполноценнее нормального (того же общелиспа)? Нельзя компилировать код в екзешник или что? Я просто сейчас книжку читаю http://www.fuzzylisp.com/book.html там все примеры на ньюлиспе, возможностей там явно не меньше, чем в каком-нибудь пистоне.

Ответы>>749325

21 Май, 15:38 #334 #749325

>>749304
а откуда мысль, что он хуже, он просто другой

21 Май, 16:33 #335 #749378

>>749261
но они должны быть круглыми!!111 а этом вся суть нелисп!!

22 Май, 03:46 #336 #750030

>>748136
Как будто темку на вордпрессе глянул

22 Май, 21:46 #337 #750771

Сап аноны.
У меня "трагедия", я пишу на ruby за денюжку в одной конторе вот уже почти 5 лет. В последний год раби мне с каждым днем становится противен не знаю пока почему. Решил посмотреть в сторону Си, начать сначала так сказать. но нет. Читаю сейчас SICP, делаю упражнения и вы знаете, для меня будто открывается новый мир совершенно иной настолько яркий. Лисп очень крутой язык. Паралелльно посмотрел на clojure. Прочел статью Пола Грэма http://www.nestor.minsk.by/sr/2003/07/30710.html
и тут понеслись у меня мысли. Посоветуйте мне на какой путь встать? Продолжать дальше писать на руби и не рыпаться, пересесть на Лисп? Но какой? Common Lisp? Clojure?

Ответы>>751137>>751633>>751992>>752124>>752759

23 Май, 04:12 #338 #751137

>>750771
Ну, если найдешь работу, перекатывайся конечно

23 Май, 17:32 #339 #751633

>>750771
Почему "или"? Продолжай писать на руби и перекатывайся на common lisp. Если даже не найдешь ему платного применения, то получишь хотя бы полезный опыт.

23 Май, 21:42 #340 #751992

>>750771
не слушай этих дебилов с комон лиспом. Сейчас даже Пол советует Кложу.

Ответы>>752748

23 Май, 23:20 #341 #752124

>>750771
Однозначно кложура - она сейчас на переднем крае во всех перспективных областях. Достаточно посмотреть на список книжек на любой помойке типа http://it-ebooks.info/tag/clojure/ . Кложуру за несколько лет продвинули в разы дальше, чем коммонлисп за все 160 лет его существования.

Ответы>>752759

23 Май, 23:32 #342 #752141

Не могу осилить трансдюсеры. Вроде всё понятно, но у меня какое-то постоянное ощущение, что это какое-то неправильное костыльное говно, а Рич Хикка наркоман.

Ответы>>752152

23 Май, 23:42 #343 #752152

>>752141
http://thedeemon.livejournal.com/87320.html

24 Май, 16:34 #344 #752748

>>751992
А что по-твоему ещё он мог посоветовать негру?

24 Май, 16:49 #345 #752759

>>752124
>Однозначно кложура - она сейчас на переднем крае во всех перспективных областях.
Или, если перефразировать, часть вебжавахипстеров, что не осилила скалу, использует кложу. На этом её применение заканчивается.
>Кложуру за несколько лет продвинули в разы дальше, чем коммонлисп за все 160 лет его существования.
Кложу никуда не продвигали, она паразитирует на жвм и лиспах.
>>750771
В общем, не слушай этих жвм-сектантов. Кложа, если сравнивать с общелиспом, довольно дряной язык: ни сигналов, ни нормального ООП, ни эффективных реализаций, и всё это помножается на многочисленные минусы жвм и жавы, которая там изо всех щелей проглядывает >>740428

Ответы>>753134>>753182>>753488

24 Май, 17:32 #346 #752800

Лиспаны, с помощью MOP как-нибудь можно внедриться в процесс генерации сеттеров? Хочу добавлять свой код к телу сеттера, но не хочу занимать after-метод, т.к. он может понадобиться программисту. Что делать?

24 Май, 22:33 #347 #753134

>>752759
Аноны, когда будете читать тот пост помните о том, что его пищет 27-летняя нищая пидораха, которого выперли (не взяли) со всех адекватных работ и он разразился соплями в одном из соседних тредов.

А пока пидораха ныл как все плохо, Хик написал еще одну охуительную штуку.
http://clojure.org/about/spec

Ответы>>753769>>753807

24 Май, 23:24 #348 #753182

>>752759
> она паразитирует на жвм и лиспах.
Ваще-то это лиспы сейчас паразитируют на кложуре. Народ сначала осваивает ее, а потом в редких случаях интересуется подножием эволюционной лестницы :)

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

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

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

> и всё это помножается на многочисленные минусы жвм и жавы
Часть чуда-то как раз в том, что кложура работает на жвм, интероперабельна и хорошо встроена в инфраструктуру.

Ответы>>753769

25 Май, 10:40 #349 #753488

>>752759
>что не осилила скалу, использует кложу
Ага, а лисп для тех кто не осилил алгол.

Ответы>>753769

25 Май, 17:35 #350 #753769

>>753488
Наоборот, тащемта.
>>753182
>> ни сигналов
>Зачем они?
В каком смысле? Ты не знаешь, что это такое? Или не понимаешь, как их использовать?
>Под JVM и JS - какие тебе еще нужны реализации?
Эффективные, написал же.
>Часть чуда-то как раз в том, что кложура работает на жвм, интероперабельна и хорошо встроена в инфраструктуру.
Ага, один большой неидиоматичный "плюс" >>740428
Уж если бы я оказался прикованным к жвм, то предпочел бы скалу, котлин, которые намного более гармонично вписываются в жава-мир и у которых хотя бы эффективный код на выходе, или в крайнем случае саму жаву, но никак не этот сплошной недостаток с именем "кложура"
>>753134
Эко ж тебя, успешного кложуриста-первокурсника, порвало.

25 Май, 18:13 #351 #753807

>>753134
>http://clojure.org/about/spec
Р. Хикки как всегда на острие технологий.
И кого ты этим хотел в лиспотреде удивить?

26 Май, 21:09 #352 #754862

Всем снова здравствуйте!
Спасибо всем за ответы но вы меня еще больше запутали. я сейчас решил почитать The Land of Lisp, а там посмотрю и Common Lisp и Clojure.

Ответы>>755886

27 Май, 08:59 #353 #755130

Сап, лиспаны. У меня тут какая-то странная проблема нарисовалась. Ставлю sbcl, ставлю на него quicklisp. Выясняется, что встроенный asdf устарел, и надо бы накатить версию посвежее. Качаю дист, запускаю install-asdf.lisp. Пробую поставить какой-нибудь пакет через быстролисп. Работает, радуюсь. Пробую сегодня - некоторые пакеты валятся с ошибкой
Unknown &KEY argument :NAMESTRING
При вызове uiop/pathname:ensure-pathname путь к uiop :NAMESTRING :NATIVE :ENSURE-DIRECRORY T). Как я понял, в вызов не передается путь к либе. А почему, я так и не понимать.

Ответы>>755166

27 Май, 09:50 #354 #755166

>>755130
Отбой, все починилось установкой самой свежей версии

Ответы>>755170

27 Май, 09:52 #355 #755170

>>755166
Версии sbcl. 1.3.5 поставил.
минификс

28 Май, 13:45 #356 #755886

>>754862
ты либо троллишь либо троллишь.

30 Май, 15:57 #357 #757598

Пробую вот на mcclim писать, а ведь вроде даже и ничего.

31 Май, 07:42 #358 #758160

>>740701
Tcl задрочен на строках, а в остальном схожесть с лиспом не больше, чем у других языков, на которые повлиял последний. Он не больше лисп, чем JavaScript, например. INB4 "Да я овер 100 тисиэлевых килослоков на коленке за вечер пишу, ко-ко-ко…".

Ответы>>758173>>758377

31 Май, 08:08 #359 #758173

>>758160
Столман, залогинься.

31 Май, 14:03 #360 #758377

>>758160
А что "остальное"-то?

31 Май, 15:34 #361 #758492

Есть смысл читать Луку Карделли?

Ответы>>758499

31 Май, 15:40 #362 #758499

>>758492
А это кто?

Ответы>>758981

01 Июн, 00:48 #363 #758981

>>758499
))))))

01 Июн, 09:20 #364 #759065

Лейнаны, почясните за раницу между ракетом и схемкой? Сильна ли она?

Ответы>>759118

01 Июн, 11:03 #365 #759118

>>759065
И вообще, какие у ракеты слабые места по сравнению с common lisp/clojure?

Ответы>>759216

01 Июн, 11:25 #366 #759129

>>705167 (OP)
Я понял!!! Динамические петушки - контрамоты. Они движутся во времени назад. Как было на самом деле: протоцепепе - ЛИСП 50-80 гг. C++ 80-90 гг. Haskell - новая версия цепепе. 90-00 гг. С точки зрения лиспопетушка сначала был Хаскель, в следующей версии он деградировал до цепепе, а в лиспопетушином будущем цепепе деградирует до лиспа.
А я все ломал голову, как человек может так ненавидеть будущее, так привязаться к прошлому, что пишет на лиспе? Но для лиспопетушка-контрамота лисп - это и есть будущее. А дальше ВВ2, индустриальная контрреволюция, религиозные войны, рабовладельческий строй, отрастание хвостов и подъем на деревья. Скай из зе лимит!

Ответы>>759256

01 Июн, 11:26 #367 #759130

Лиспаны! а ваш тред хоть раз был в топе?

157 Кб, 540x720

01 Июн, 11:32 #368 #759133

Почему для того чтобы нарисовать простенький график(https://goo.gl/tqHAHL) racket`у требуется несколько секунд и ~300 мб памяти. У других лиспов (sbcl) такая же лажа?

Ответы>>759222

01 Июн, 13:28 #369 #759216

>>759118
>И вообще, какие у ракеты слабые места по сравнению с common lisp/clojure?
Реализация. Ракетчики так не осилили запилить нормальный компилятор.

Ответы>>759488>>760308

01 Июн, 13:34 #370 #759222

>>759133
Вангую, что эти несколько секунд уходят на (require plot).
>~300 мб памяти
Что-то дохуя. Даже для ракеты и даже для его жирноватой ide.
Попробуй сборщик мусора вызвать.

Ответы>>759488

01 Июн, 14:21 #371 #759256

>>759129
Лисп задрал настолько высокую планку, что ни один из прошлых и нынешних сиплюсплюсов её не достиг.

Ответы>>759513

01 Июн, 14:26 #372 #759264

Lisp Engineer - $2500/month - WORK FROM HOME
Москва • 1 июня

https://hh.ru/vacancy/17258963

Ответы>>759499

01 Июн, 15:22 #373 #759322

Читаю ansi lisp. Там поясняют за указатели. Как вы вообще отличаете, когда функция работает с указателем, а когда - со значением? Тот же пример копирования списка из книги - каким боком я должен догадаться, где передается указатель, а где создается новая область памяти для значения?

Ответы>>759333

01 Июн, 15:35 #374 #759333

>>759322
Наркоман что ли? В лиспе всё есть объект, поэтому считай, что передаешь по указателю.

Ответы>>759345

sage 01 Июн, 15:56 #375 #759345

>>759333
Окей, ясно. Там просто есть функции, которые конструируют новые объекты, и я затупил на этом примере. Башка не варит что-то.

ЗЫ, а циферки типа уже по значению передаются?
(setf a 1)
(setf b 1)
(eql a b) ->T

Ответы>>759391>>759758

01 Июн, 17:05 #376 #759391

>>759345
Зависит от реализации.

84 Кб, 1000x667

01 Июн, 19:01 #377 #759488

>>759216
А какие слабые стороны реализации? Если говорить о скорости, то на бенчмарках racket вполне на уровне (среди других схем) - http://ecraven.github.io/r7rs-benchmarks/benchmark.html
В моих кейсах racket тоже оказался самым быстрым(сравнивал с guile и chicken). Расстраивает только потребление памяти и долгая загрузка библиотек.
То есть главный недостаток racket - низкая производительность?
>>759222
>(require plot)
А почему он так долго его загружает? Он его с нуля компилирует что-ли?

Ответы>>759756

01 Июн, 19:15 #378 #759499

>>759264
>5 years or above c/c++ development
>the top 1% of talent
>1500-2500$
мда

Ответы>>759763

01 Июн, 19:38 #379 #759513

>>759256
А haskell?

02 Июн, 01:24 #380 #759736

Программач! посоветуй книгу по common lisp. Чаще всего рекомендуют Practical Common Lisp (пролистав ее сложилось впчетление, что она для brain-damaged), а Норвиг советует ANSI Common Lisp + On Lisp.
Или лучше вкатываться в кложуру?

Ответы>>759755

02 Июн, 01:59 #381 #759755

>>759736
PCL и Onlisp

Ответы>>760447

02 Июн, 02:00 #382 #759756

>>759488
Я с общелиспом сравнивал.
Все реализации схемы сосут.

Ответы>>760313

02 Июн, 02:07 #383 #759758

>>759345
В реализациях лиспа используются тегированные указатели, а числа, буквы в них упаковываются.

02 Июн, 02:21 #384 #759763

>>759499
Так и ищут по удаленке, потому что на нормальных условиях такая работа стоит в 2 раза больше.

02 Июн, 05:48 #385 #759800

Значит так, лайкаем и форкаем мой CLR, новую стдлибу для коммонлиспа.

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

https://github.com/Lovesan/CLR

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

мимолавсан

Ответы>>759802>>759809>>759916

02 Июн, 05:53 #386 #759802

>>759800
Так, напиздел. Для SBCL-Linux треды и тред-пулы тоже работают. А вот IO первым делом будет под винду.

мимолавсан

02 Июн, 06:36 #387 #759809

>>759800
>и синтаксис для них как в Clojure (типа {:a 1 :b 2})
Фууу, разные скобочки. Чем тебя вариант типа #h(:a 1 :b 2) не устроил?

Ответы>>759811

02 Июн, 06:37 #388 #759811

>>759809
хз, привычнее ля кложуреблядков, которых есть замысел переманить после дописывания

Ответы>>759812>>759819

02 Июн, 06:38 #389 #759812

>>759811
хотя мб голосование потом устроить. поменять то нехуй делать

Ответы>>759814

02 Июн, 06:44 #390 #759814

>>759812
О, придумал.
#h(...) Это будут сеты. hset. Или #{}
хз

Ответы>>759819

02 Июн, 07:04 #391 #759819

>>759811
Мелочь-то незначительная, а столько неудобств от неё.
Никогда не понимал этих ]}]))}]
>>759814
#d для словарей, например. Да букв-то полно, хуле. На всех хватит.

02 Июн, 12:16 #392 #759916

>>759800
А зачем ты ffi велосипедишь? Не целесообразнее ли взять cffi, которая де-факто стандарт?

Ответы>>760472

02 Июн, 20:52 #393 #760287

После непродожительного паралелльного изучения Common Lisp и Clojure мое мнение:
Как сферический язык в вакууме cl заруливает.
Как инструмент для решения проблем рулит и педалит кложура

Ответы>>760450

02 Июн, 21:37 #394 #760308

>>759216
Зато там батарейки и очешуительные доки

Ответы>>760310

02 Июн, 21:42 #395 #760310

>>760308
блджад, если сделают эффективную реализацию и начнут пиарить, Racket может взлететь, мне кажется

02 Июн, 21:51 #396 #760313

>>759756
Chez Scheme неплохая. Только у нее в поставке даже srfi нет

03 Июн, 00:33 #397 #760447

>>759755
Выбрал The Joy of Clojure

Ответы>>760467

03 Июн, 00:52 #398 #760450

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

Ответы>>760469

03 Июн, 02:12 #399 #760467

>>760447
Толсто

03 Июн, 02:25 #400 #760469

>>760450
ни один уважающий себя современный разработчик не выберет язык без зависимых типов. А тем более жаву да ещё и с покореженным синтаксисом.

Ответы>>760471

03 Июн, 02:46 #401 #760471

>>760469
Не джаву, а jvm.И синтаксис гораздо лучше чем в common lisp.

Ответы>>760474

03 Июн, 03:01 #402 #760472

>>759916
Это будет библиотека абсолютно без внешних зависимостей

03 Июн, 03:04 #403 #760474

>>760471
Маня, синтаксис в Common Lisp это вопрос решаемый не приходя в сознание

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

мимолавсан

Ответы>>760477

03 Июн, 03:49 #404 #760477

>>760474
>>я из CL сделал сначала JS, а потом PHP
Толку от этого ноль

03 Июн, 04:35 #405 #760478

> мимолавсан
кто такой, чем знаменит?

Ответы>>760479

03 Июн, 05:07 #406 #760479

>>760478
Поборник лиспа и мелкософта из /c/. Вел охуительный блог http://juick.com/lovesan/ где знатно доставлял, поливая всех и вся говном. Особенно не любит швабодную ос и пиздолизов. Читать в первую очередь теги долбоебы, прыщи, *Haskell (его тоже в основном говном поливает). Не взяли в джетбрейнс. В свободное время пишет биндинги на коммон лиспе. Верит, что метапрограммирование спасет мир.

Ответы>>760481

03 Июн, 05:51 #407 #760481

>>760479
может он уже дропнулся? новых записей ни в жж, ни в жуйке, ни на лоре с 2015.

Ответы>>760482>>760487

03 Июн, 05:52 #408 #760482

>>760481
он же был какой-то пиздастрадалец омежка и заливался от этого огненой водой.

03 Июн, 06:12 #409 #760487

>>760481
На гитхабе коммитить начал снова недавно ведь.

Ответы>>760490

03 Июн, 06:38 #410 #760490

>>760487
ага, 5 коммитов вчера, из запоя что-ли вышел?
Пропил мозги нахуй.
Вообще печально что архимаг забросил, тот реально лиспкун, и его вклад в рашнлиспкомьюнити на уровне ксача.

sage 03 Июн, 17:01 #411 #760721

Почему в CL нельзя просто взять и передать функцию аргументом, як в Scheme? Нужно квотить, делать funcall. С чем это связанно? Я нуп.

Ответы>>760741

03 Июн, 17:27 #412 #760741

>>760721
У CL раздельные пространства имен для функций, переменных, пакетов и т.д., а у схемы одно на всё.

Ответы>>760743>>760778

03 Июн, 17:32 #413 #760743

>>760741
Предвосхищая вопрос зачем это - из-за того что в cl макросы не hygenic

Ответы>>760755

03 Июн, 17:46 #414 #760755

>>760743
Можешь раскрыть, как это может быть взаимосвязано?

Ответы>>760803

sage 03 Июн, 18:25 #415 #760778

>>760741
А почему через лямбду можно? Если смотреть в топ-левеле, то лямбда вроде возвращает то же.
((lambda (x) ( x x)) 4) <--работает
((symbol-function ') 4 4) <--нет

Ответы>>760779

sage 03 Июн, 18:26 #416 #760779

>>760778
В symbol-function подаётся '*

03 Июн, 19:06 #417 #760803

>>760755
В Lisp 2 гораздо проще избежать коллизию имен.

Ответы>>760893

03 Июн, 21:50 #418 #760893

>>760803
Типа, логика в том, что больше неймспейсов -> меньше коллизий -> гигиена нинужна?

Ответы>>760897

03 Июн, 21:58 #419 #760897

>>760893
тут крушал поинт именно в том, что функции(которые обычно глобальные) в отдельном неймспейсе, да

Ответы>>760929

03 Июн, 22:41 #420 #760929

>>760897
ну и говно

Ответы>>760988

04 Июн, 00:31 #421 #760988

>>760929
У clojure один namespace

Ответы>>761068

04 Июн, 09:08 #422 #761068

>>760988
Там можно кастомные неймспейсы создавать.

Ответы>>761277

04 Июн, 16:03 #423 #761277

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

Ответы>>761919

05 Июн, 01:58 #424 #761902

Лиспач! стоит ли читать Purely Functional Data Structures?

05 Июн, 03:14 #425 #761919

>>761277
А call/cc вам завезли?

Ответы>>761920>>761922

05 Июн, 03:29 #426 #761920

>>761919
Смешно.
мимо кложурист

Ответы>>761923>>761925

05 Июн, 03:49 #427 #761922

>>761919
Нет (

Ответы>>761925

05 Июн, 03:49 #428 #761923

>>761920
А мне грустно

05 Июн, 04:10 #429 #761925

>>761920
>>761922
В какие-то ограничения жвм все упирается, что ли? В Kawa Scheme же запилили как-то.

05 Июн, 21:04 #430 #762587

Кто нибудь может объяснить, чего Хикки так тащится от JVM?

Ответы>>762589

05 Июн, 21:09 #431 #762589

>>762587
Ему gc самому было лень делать?

09 Июн, 00:18 #432 #765131

http://www.opennet.ru/opennews/art.shtml?num=44420

Ответы>>765144

09 Июн, 00:43 #433 #765144

>>765131
мне бы в джаваскрипт...

Ответы>>765446>>767818

09 Июн, 14:38 #434 #765446

>>765144
parenscript

12 Июн, 16:12 #435 #767818

>>765144
jscl жи есть

12 Июн, 18:11 #436 #767936

Господа, что я делаю не так в реализации итеративного вычисления цепной дроби? https://ideone.com/7fiRh4

У островных полубогов код точно такой же, но рабочий:
http://wat-aro.hatenablog.com/entry/2015/10/08/061911

Ответы>>767979

12 Июн, 18:51 #437 #767979

>>767936
[code]
(define (frac i)
(if (__<__ i k)[/code]
[code]
(define (recur i)
(if (__=__ i k)[/code]

Ответы>>767996

12 Июн, 19:14 #438 #767996

>>767979
Рекурсивное говно, а надо сделать итеративно.

Ответы>>767998

12 Июн, 19:15 #439 #767998

>>767996
Сравнение, говорю, у тебя не то. Должно быть =, а у тебя <

Ответы>>768020

12 Июн, 19:27 #440 #768020

>>767998
>Должно быть =, а у тебя <
Я спрашиваю про реализацию cont-frac-iter в моем коде на идеоне. У меня там =.

Ответы>>768037

12 Июн, 19:37 #441 #768033

Странно, что по запросу SICP выдается столько японских сайтов. У пидорашек книга непопулярна.

Ответы>>768039

12 Июн, 19:40 #442 #768037

>>768020
А, вижу. Ты с именем там обосрался. У тебя frac-iter, а должно быть просто iter.
Воспользуйся рэкетом, там подобные ошибки сразу выявляются.

Ответы>>768053

12 Июн, 19:41 #443 #768039

>>768033
У нас просто не принято вести блоги о решении задач для первокурсников.

Ответы>>768060

12 Июн, 19:45 #444 #768053

>>768037
Неа, вычисляется неправильно.
https://ideone.com/64MST8

Ответы>>768054

12 Июн, 19:46 #445 #768054

>>768053
Оно и не должно: (lambda (i) 1.0)

12 Июн, 19:52 #446 #768060

>>768039
Потому что даже их осилить не могут или пишут в блогах про "смотрите, какая хуйня случилась в этом фреймворке, и вот как я с ней справился".

Ответы>>768083

12 Июн, 20:13 #447 #768083

>>768060
Что там осиливать? Задачи рассчитаны на первокурсников.
Уж не с политача ли ты залётный? Не понимаю, что за тенденция такая выставлять себя хуже в сравнении с какой-то другой нацией.

Ответы>>768088>>768199

12 Июн, 20:15 #448 #768088

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

Ответы>>768090>>768108

12 Июн, 20:17 #449 #768090

>>768088
ясно

12 Июн, 20:42 #450 #768108

>>768088
Однако сильная штука, эта ваша пропаганда. Что ж такое человеку-то нужно сказать, чтоб он сам себя ненавидеть начал.

Ответы>>768185

12 Июн, 21:52 #451 #768185

>>768108
Он не себя ненавидит, а считает что вокруг него одни говноеды, а он сам рыцарь на белом коне, просто ему видите-ли не повезло родится в этом болоте.

12 Июн, 22:10 #452 #768199

>>768083
задетектил лавсана. не обращайте внимания, местная ебанутая нищенка

Ответы>>768243

12 Июн, 22:56 #453 #768243

>>768199
Сомневаюсь, что то был лавсан, потому что писал я

15 Июн, 11:29 #454 #769886

>>705167 (OP)
В список диалектов AutoLISP добавьте (скриптовый язык AutoCAD), до Clojure это был самый популярный лисп.

Ответы>>770116>>770230

15 Июн, 16:27 #455 #770116

>>769886
Он никогда не был популярнее общилиспа

Ответы>>770117

15 Июн, 16:27 #456 #770117

>>770116
>обще
быстрофикс

15 Июн, 19:01 #457 #770230

>>769886
Сам и добавь. Шапка в титанпаде

18 Июн, 19:20 #458 #773346

>>705167 (OP)
Кложурогоспода, как мне запилить структуру с состоянием? Прочитал про type, но вот не пойму как в нем хранить внутреннее состояние.
Допустим, мне нужно хранить состояние подключения во внутреннем поле типа Database. Я объявляю тип как
(deftype Database [url] (connect [db] ...) (disconnect [db]))
Экземпяр Connection мне нужно хранить в приватном поле, и создавать его при вызове метода connect, а если я укажу его в квадратных скобках при объявлении типа, то он будет публичным. Тащемта может дело в том, что я думаю объектно-ориентированно, но вот для этой задачи ооп на мой взгляд луше всехо подходит, ибо экземпляров Database нужно несколько, и у каждого из них будет свое состояние.

Ответы>>773394>>773413

18 Июн, 19:58 #459 #773394

>>773346
а почему тебе не завести атом для состояния подключения и написать для него функции-обработчики?

Ответы>>773518

18 Июн, 20:09 #460 #773413

>>773346
А зачем тебе изменяемое поле для соединения?
(connect {:host host :port port :database db ...}) => {:connection conn :conn-info {:host ...}}
И то я сомневаюсь, что эта информация не продублирована в самом объекте соединения.

Ответы>>773513

18 Июн, 21:38 #461 #773513

>>773413
>А зачем тебе изменяемое поле для соединения?
Идея в том, чтобы те кто работают с Database не пользовались даже connect. Я хочу при обращении к методу read-data проверять наличие соединения, и если оно есть то реюзать, а если нету то устанавливать новое с помощью connect. Вот, и вопрос в том где хранить это состояние. Database должен сам менеджить свое внутреннее состояние, а те кто обращаются к read-data могут.

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

Ответы>>773759

18 Июн, 21:44 #462 #773518

>>773394
потому что само по себе подключение это особенность реализации Database. Database реализует протокол Readable в моем поделии, а кроме него есть еще TextFile, который тоже реализует Readable, но у него нет connection внутри, ему даже и хранить своего состояние не нужно.

18 Июн, 22:15 #463 #773546

Помогите разобраться, как развернуть рекурсивный вызов в последовательность применения функций. Я запутался. И еще: почему-то лямбда, примененная к значения, не печатает число на экран даже если использовать (display).

https://ideone.com/DZZxwq

Ответы>>773550

18 Июн, 22:15 #464 #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 Июн, 22:15 #464 #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 Июн, 22:18 #465 #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

А на идеоне это вообще не работает.

Ответы>>773552>>773773

18 Июн, 22:19 #466 #773552

>>773550
>А на идеоне это вообще не работает
С этим я разобрался. Это из-за #!
https://ideone.com/GXmoZS

19 Июн, 00:19 #467 #773717

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

19 Июн, 00:42 #468 #773759

>>773513
Храни соединение в динамической переменной.
read-data будет её проверять и, если она не забинжена, будет устанавливать соединение.

19 Июн, 00:51 #469 #773773

>>773550
>Почему-то вместо значения выводится <procedure...
Ну подскажите, блеадь, что я делаю не так, когда разворачиваю рекурсию в последовательность применения функций.

Ответы>>773778

19 Июн, 00:58 #470 #773778

>>773773
Скинь код, в котором это выводится

Ответы>>773781

19 Июн, 01:00 #471 #773781

>>773778
Вот: https://ideone.com/GXmoZS
Хочу проверить, правильно ли я понимаю, как выполняется repeated, и убедиться в этом, вычислив значения развернутых выражений.

Ответы>>773782

19 Июн, 01:01 #472 #773782

>>773781
Не выводится там никакой
><procedure:..

Ответы>>773787

19 Июн, 01:09 #473 #773787

>>773782
В ракете выводится. И то, что не выводится вообще ничего - не то, что я хочу.

Ответы>>773793>>773797

19 Июн, 01:16 #474 #773793

>>773787
Тебя интересуют две последнии лямбды, я так понимаю?

Ответы>>773801

19 Июн, 01:22 #475 #773797

>>773787
В твоем коде ничего кроме двух чисел в stdout не должно выводиться.

19 Июн, 01:30 #476 #773801

>>773793
Да. Таким образом я хочу смоделировать вызов ((repeated inc 5) 0) на каждом этапе рекурсии. Чтобы убедиться в том, что я делаю это правильно, получившуюся функцию я хочу применить к тому же значению, к которому применяется ((repeated inc 5) 0) - к нулю.

Ответы>>773816

19 Июн, 01:52 #477 #773816

>>773801
https://ideone.com/9r0U3b
Это ты хотел? Ты там лишних лямбд нафуговал без вызова

Ответы>>774091

19 Июн, 12:55 #478 #774091

>>773816
Откуда там 555?

Ответы>>774094

19 Июн, 12:55 #479 #774094

>>774091
А, не посмотрел, что там нету newline, и все три результата выводятся на одной строке.

27 Июн, 15:41 #480 #781242

Анон, подскажи гайд по привинчиванию гуя к программе на CL.

Ответы>>781606>>781765

27 Июн, 22:29 #481 #781606

>>781242
Вариантов два
- Покупаешь LispWorks, используешь CAPI.
- Ищешь биндинги для библиотек тулкитов, пердолишься с ними.

Ответы>>781848

28 Июн, 00:57 #482 #781765

>>781242
https://github.com/CodyReichert/awesome-cl#gui

Ответы>>781848

28 Июн, 06:29 #483 #781848

>>781606
Есть ещё третий стул — McCLIM. Но у него только из стабильных бекендов только CLX.
>>781765
К тому списку нужно добавить qtools-ui. На данный момент он, пожалуй, самый пригодный для использования, но у него один большой минус — smoke. Автор вроде собирается избавиться от этого говна и запилить нормальные биндинги

Ответы>>782279

28 Июн, 15:09 #484 #782266

Почему в CL
(= 1/10 0.1)
NIL
вот такая вот хуйня происходит?

Ответы>>782277>>782293>>782889

28 Июн, 15:19 #485 #782277

>>782266
Целочисленная операция / примененная к 1 и 10 дает 0.
Floating point numbers нельзя сравнивать на равенство.

Ответы>>782289>>782802

28 Июн, 15:20 #486 #782279

>>781848
>McCLIM
CAPI от него и пошел. И недалеко ушел (это комплимент).
CLIM сейчас активно пытаются допиливать и перепиливать.

35 Кб, 212x212

28 Июн, 15:28 #487 #782289

>>782277
>Целочисленная операция / примененная к 1 и 10 дает 0.
(= 1/10 0)
NIL

Ответы>>782338

28 Июн, 15:30 #488 #782293

>>782266
Потому что одно число рациональное другое дробное?

28 Июн, 16:01 #489 #782338

>>782289
Тебе про (/ 1 10) говорят, ты даже не понимаешь, только картинками запасся

Ответы>>782360

28 Июн, 16:15 #490 #782360

>>782338
>Тебе про (/ 1 10) говорят
(= (/ 1 10) 0)
NIL
>ты даже не понимаешь
Очевидно, что не понимаю - иначе и не спрашивал бы.

Ответы>>782392>>782396

28 Июн, 16:46 #491 #782392

>>782360
> (print (/ 1 10))
> 0

Ответы>>782417

28 Июн, 16:47 #492 #782396

>>782360
> (= (/ 1 10) 0)
> t
> GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)

Ответы>>782417

28 Июн, 16:59 #493 #782417

>>782392
> (print (/ 1 10))
> 1/10
>>782396
>(= (/ 1 10) 0)
>NIL
>This is SBCL 1.3.6, an implementation of ANSI Common Lisp.

8 Кб, 333x157

28 Июн, 22:59 #494 #782802

>>782277
Что с вами не так то?

28 Июн, 23:58 #495 #782862

А можно ли на лиспе сделать типы в виде функций?

Ответы>>782872>>782885

29 Июн, 00:11 #496 #782872

>>782862
На Shen можно. И даже больше.

29 Июн, 00:38 #497 #782885

>>782862
Параметризируемые шоле? Можно. Даже встроенные есть: integer &optional min max, cons &optional car cdr, simple-array type length и т.д

29 Июн, 00:49 #498 #782889

>>782266
http://ideone.com/O9vxO3
http://stackoverflow.com/questions/32889606/equality-check-with-fractions-in-common-lisp

Ответы>>783004

34 Кб, 400x267

29 Июн, 09:53 #499 #783004

>>782889
Огромное спасибо!

01 Июл, 20:49 #500 #785472

Какая есть удобная библиотека для нейроных сетей?

Ответы>>785478

01 Июл, 20:54 #501 #785478

>>785472
Сам не пользовался, но что-то слышал про mgl или clml. Пощупай их.

01 Июл, 20:56 #502 #785480

Пора бы, кстати, перекат запилить.

01 Июл, 21:05 #503 #785489

>>785486 (OP)
>>785486 (OP)
>>785486 (OP)
Перекатываемся

Тред утонул или удален.
Это копия, сохраненная 23 июля 2016 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion