Сохранен F 508
https://2ch.hk/pr/res/565035.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Лиспотред №2

 Аноним 24/10/15 Суб 18:55:43 #1 №565035 
14457021437390.jpg
Прерыдущий: >>517479 (OP) Текущая версия шапки: http://pastebin.com/x0jupErn

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

Основные диалекты
Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и, в некоторых реализациях (sbcl, например), частичный их вывод.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
+ свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (llvm; ориентирован на интероп с c++), ABCL (байт-код JVM), gcl, cmucl
+ коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl (для программирования под ведро и ios)
Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Тем не менее Racket, вполне практичен. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket), включая схему стандартов r5rs и r6rs.
Clojure - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.
Emacs Lisp - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.
Tcl - скриптовый язык, оче удобен для написания скриптиков с окошками или edsl
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
Алсо, годная статья про проектирование 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 (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет)

Clojure
+ Programming Clojure, 2nd edition (для новичков)
+ The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП)

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


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

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 (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно)

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


Библиотеки
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
Аноним 24/10/15 Суб 18:57:30 #2 №565038 
вкатился
Аноним 24/10/15 Суб 18:59:37 #3 №565039 
14457023773670.jpg
Вкатился
Аноним 24/10/15 Суб 19:17:14 #4 №565050 
Если sbcl'овский рантайм (~30mb) большой, то чому не юзать newlisp? Он ведь тьюринг-полный? Ну или поясните чем он плох.
Аноним 24/10/15 Суб 19:23:04 #5 №565053 
>>565050
Область применимости newlisp ограничивается скриптотой.
К тому же, он интерпретируемый и вообще ебанутый недолисп
Алсо, если не устраивает размер sbcl, существует куча других реализаций. Тот же ACL умеет вычищать рантайм от неиспользуемых пакетов и компилятора.
Also Аноним 24/10/15 Суб 19:32:14 #6 №565061 
Предыдущий здесь https://arhivach.org/thread/116677/
Нынешний https://arhivach.org/thread/116678/
Аноним 24/10/15 Суб 23:33:30 #7 №565279 
Антоны, подскажите как подключить lang lisp в racket. Не понимаю где найти PlaneT
Аноним 24/10/15 Суб 23:39:32 #8 №565284 
>>565279
>lang lisp
WTF?
>Не понимаю где найти PlaneT
В шапке же ссылка
Аноним 25/10/15 Вск 12:18:39 #9 №565501 
Аноны, чому spacemacs по C-j не хочет исполнят лисп-скрипт?
Аноним 25/10/15 Вск 12:26:14 #10 №565503 
>>565501
А схуябы он должен этого хотеть?
Аноним 25/10/15 Вск 12:27:31 #11 №565504 
>>565503
Ну в обычном емаксе робит. Кстати, его можно разделить на два окошка? Чтоб в одном репл был, а в другом файл
Аноним 25/10/15 Вск 12:35:37 #12 №565510 
>>565504
>Ну в обычном емаксе робит.
Ты про репл что ли? Ну перебиндь C-j на RET.
>>565504
> Кстати, его можно разделить на два окошка?
M-x make-frame
Аноним 25/10/15 Вск 12:38:03 #13 №565512 
>>565510
Спасибо.
> RET
Это что такое?
Аноним 25/10/15 Вск 12:50:07 #14 №565523 
>>565512
Это кнопочка ЕНТЕР.
Алсо, нахуя ты пишешь код в репле? Пиши о обычном буфере, потом отправляй в репл по функциям, регионами или сразу целым буфером.
Аноним 25/10/15 Вск 12:52:59 #15 №565524 
>>565523
Ну тебе говорить просто, а я второй день как его установил.
Аноним 25/10/15 Вск 14:53:13 #16 №565590 
Почему Racket такой тормознутый и делает большие бинарники?
Аноним 25/10/15 Вск 14:59:24 #17 №565596 
>>565590
> Почему Racket такой тормознутый
Выдели больше памяти или работай в консоли.
> делает большие бинарники
Лисп же.
Аноним 25/10/15 Вск 15:01:48 #18 №565599 
14457745081940.png
Алсо, оставил пока емакс сложна
Подпилил сублайм, пока норм.
Аноним 25/10/15 Вск 15:02:01 #19 №565600 
>>565596
>Выдели больше памяти или работай в консоли.
Будто он от этого более эффективный код будет генерировать. Надо было CL брать.
Аноним 25/10/15 Вск 15:02:43 #20 №565601 
>>565600
Я чет подумал про ДрРакет, сорри.
Аноним 25/10/15 Вск 17:34:28 #21 №565670 
Что скажете за GNU Guile?
Аноним 25/10/15 Вск 20:21:33 #22 №565800 
>>565670
Легко встраиваемая реализация схемки для написания расширений.
Аноним 26/10/15 Пнд 15:18:00 #23 №566209 
суп, антоны
что должен уметь делать с лепсом недомидл в айос, чебы в ДФ на старте получать хотя бы 70тр в коммерческой разработке на лиспе?
Аноним 26/10/15 Пнд 15:18:36 #24 №566210 
>>566209
ДС, естессна
Аноним 26/10/15 Пнд 19:14:58 #25 №566344 
>>566209
Продаваемое ПО должен уметь делать, очевидно.
Ну и на mocl накопить ещё.
Аноним 26/10/15 Пнд 20:29:46 #26 №566389 
>>566344
ну нахуй этот твой мокыл

я же не в мобайле его хочу юзать
Аноним 26/10/15 Пнд 20:55:06 #27 №566403 
>>566389
>ios
>не в мобайле
Аноним 26/10/15 Пнд 21:24:37 #28 №566414 
>>566403
не, ну айдос был упомянут для того, чтобы дать понять, что пока у меня обжцэ головного моска, сорян. че вы
Аноним 26/10/15 Пнд 22:20:03 #29 №566456 
Вкотился
(cons 'vsl '(not dead))
Аноним 27/10/15 Втр 00:37:05 #30 №566601 
Много думал, читал, опять думал. И в конечном итоге пришел к выводу, что лисп единственный божественный яп. Все остальное жалкое подобие. Метапрограммирование, абстракции. Кароч, думаю вкатываться в мир илитки. Сам ни разу не программист, но учился, в ооп могу, лисп изучал, пролог. Годного посоветуйте пачаны. Спасибо
П.с. Sicp читаю
Аноним 27/10/15 Втр 00:41:36 #31 №566604 
>>566601
ANSI Common Lisp говорят тоже ниче
Аноним 27/10/15 Втр 00:47:34 #32 №566611 
>>566601
Если хочешь познать lisp-way, то читай On Lisp.
Аноним 27/10/15 Втр 10:44:21 #33 №566769 
Вопрос от ньюфага. Не совсем понимаю зачем нужен elisp. Ну да, он часть емакса, но он же больше нигде не используется? Нельзя ли прикрутить к емаксу sbcl, например?
Аноним 27/10/15 Втр 16:29:14 #34 №567057 
В чем причина упадка лиспов в СССР/пост-СССР?
Аноним 27/10/15 Втр 17:15:30 #35 №567100 
>>566769
>Нельзя ли прикрутить к емаксу sbcl, например?
Можно, но
>он часть емакса
Емакс придется почти полностью переписать. Алсо, что ты будешь делать с миллионами строк расширений на elisp'е? Можно, конечно, запилить слой совместимости, но проделать одному всю эту работу практически нереально.
Аноним 27/10/15 Втр 17:16:10 #36 №567101 
>>567057
Хуй его знает.
Аноним 28/10/15 Срд 18:43:39 #37 №568052 
Блядь, да что с этим рэкетом? Запускаю его в гейзере, а он, сука, начинает жрать процессорное время.
То ли из-за автодока, то ли из-за чего-то другого.
Аноним 28/10/15 Срд 20:47:54 #38 №568162 
Какие общеизвестные проекты исползуют лисп? В гуголе не нашёл, а емакс и плагины для гимпа не в счёт.
Аноним 28/10/15 Срд 20:54:49 #39 №568168 
>>568162
Очевидная Maxima
Аноним 28/10/15 Срд 21:20:07 #40 №568187 
>>568162
Автокад. Короче, оччень древние проекты, которым требовался скриптовый язык, и все писали собственные велосипеды. Лисп, понятное дело, на коленке сделать в разы проще, чем пых. Но сейчас, в век эмбедящихся пыхов, оно уже не нужно.
Аноним 28/10/15 Срд 21:21:58 #41 №568189 
>>568187
>оччень древние проекты, которым требовался скриптовый язык
Ебать ты знаток.
Аноним 28/10/15 Срд 21:26:14 #42 №568191 
>>568162
ABBYY
Аноним 28/10/15 Срд 21:26:42 #43 №568192 
>>568162
http://www.nuprl.org/
Аноним 28/10/15 Срд 21:26:44 #44 №568194 
>>568187
Но язык то не дохнет. Вон, новые диалекты придумывают, ещё что-то. Кому то это надо?
Аноним 28/10/15 Срд 21:29:54 #45 №568196 
>>568194
> Кому то это надо?
А ты думаешь что программирование ограничивается только вебом или клепанием очередного фоллаута? Если так, то лисп тебе ни к чему. А вот если ты будешь делать систему принятия решений, например, то без лиспа оче сложна будет.
Аноним 28/10/15 Срд 21:30:50 #46 №568198 
>>568196
Будто лишп для веба не используется.
Аноним 28/10/15 Срд 21:38:11 #47 №568204 
>>568198
Используется, и что? На хаскелле вон борду запилили. Значит ли это что хачкелль создан для веба?
Аноним 28/10/15 Срд 21:39:47 #48 №568206 
Ночи, паrни. Чому у меня в spacemacs не везде работает автодополнение? В конфигах емакса робит, в пихтоне робит, а в схеме не робит?
Аноним 28/10/15 Срд 21:42:49 #49 №568207 
>>568194
Лиспы дохнут регулярно, не дохнет только сама идея программировать непосредственно в AST.
Аноним 28/10/15 Срд 21:55:53 #50 №568212 
>>568204
>На хаскелле вон борду запилили.
Я видел код. Хаскель точно создан НЕ для веба.
Аноним 28/10/15 Срд 21:57:29 #51 №568215 
>>568207
>Лиспы дохнут регулярно
Годов этак с 90х не пострадало ни одного лиспа.
Аноним 28/10/15 Срд 21:57:42 #52 №568216 
>>568212
Ну так я лисп тоже не для веба. А еще я ссу иногда в раковину, хотя она создана не для этого. Как и рука, которую ты ебешь
Аноним 28/10/15 Срд 21:58:06 #53 №568217 
>>568206
Запустил репл?
Аноним 28/10/15 Срд 21:58:36 #54 №568218 
>>568217
Неа.
Аноним 28/10/15 Срд 21:59:13 #55 №568219 
>>568196
Нет. Я как раз и хочу понять, какова область применения лиспа.
Аноним 28/10/15 Срд 21:59:55 #56 №568221 
>>568218
Запусти. Ты думал, святой дух будет емаксу автодополнения подсказывать?
Аноним 28/10/15 Срд 22:01:55 #57 №568223 
>>568221
В смысле slime запустить?
Аноним 28/10/15 Срд 22:03:10 #58 №568225 
>>568219
Часто в NLP применяют. А вообще, нет какой-то одной конкретной области применения. Как и у других языков, в общем-то.
Аноним 28/10/15 Срд 22:04:09 #59 №568226 
>>568223
M-x run-geiser
Аноним 28/10/15 Срд 22:06:17 #60 №568228 
>>568226
[No match]
Алсо, как добавить slime? Я чут и туда, и туда добавлял, а он не подтягиается. А через package-install он потом удаляется.
Аноним 28/10/15 Срд 22:07:37 #61 №568229 
>>568225
Ну просто имхо, если про вещьнейм особо ничего не слышно, значит либо она мертва, либо применяется в узкоспециализированной области.
Аноним 28/10/15 Срд 22:07:46 #62 №568232 
>>568228
>[No match]
Слой scheme не активировал?
>Алсо, как добавить slime?
Очевидный common-lisp в .spacemacs
Аноним 28/10/15 Срд 22:08:27 #63 №568233 
>>568229
Если про вещь не слышно, значит ты не слушаешь. Или слушаешь, но не там.
Аноним 28/10/15 Срд 22:08:28 #64 №568234 
>>568229
Это только значит, что среди хаброхипстеров вещь не популярна.
Аноним 28/10/15 Срд 22:17:16 #65 №568248 
>>568232
Активировал, все равно автокомплита нету.
Аноним 28/10/15 Срд 22:18:06 #66 №568251 
>>568248
M-m f e R сделал? Репл запустил?
Аноним 28/10/15 Срд 22:26:09 #67 №568255 
Вся суть лисподетей: весь тред обсуждать только костыли для написания этой самой лиспопараши.
Аноним 28/10/15 Срд 22:30:13 #68 №568258 
Хули документация у рэкета - такая параша? Уже, блять, не альфа, не бете, не первая и даже не вторая версия, уже ШЕСТАЯ, ШЕСТАЯ нахуй, а документация до сих пор в полунаписанном состоянии.
Алсо, тормозит он - пиздец. Чую, ещё чуточку поковыряю и он меня окончательно заебёт.
Аноним 28/10/15 Срд 22:32:01 #69 №568259 
>>568255
А хуле ты хотел, если в треде полтора ньюфага.
Аноним 28/10/15 Срд 23:15:26 #70 №568291 
>>565050
>sbcl'овский рантайм (~30mb) большой
о, да
особенно когда средний комп у любого лоха с 2т винтом и 8г оперативы
Аноним 28/10/15 Срд 23:32:09 #71 №568296 
>>567100
разговоры за то чтобы дополнить (не заменить) elisp идут давно
один из самых легко реализуемых добавлений будет guile
в gsc2014 это делали
https://www.google-melange.com/gsoc/project/details/google/gsoc2014/bpt/5803402760028160
есть обсуждение на вики
но как это это пока не взлетело
а ведь на самом деле это будет очень удобно - можно будет запиливать новые модули на схемке (в том числе и собственную обычную кастомизацию или какие собственные пользовательские скрипты)
так же можно было бы потихоньку начать переписывать уже существующие модули с elisp на схемку
потому что по большому счету elisp как язык - то еще говнецо, когда пишешь на нем, постоянно кислое лицо, когда еще знаешь что существует r5rs и r6rs схемки и standart lisp
Аноним 28/10/15 Срд 23:37:00 #72 №568297 
>>568296
Guile? В емаксе? Нахуй он там нужен? Елисп, конечно, говно, но меняеть его на этот огрызок нет никакого смысла. Ещё и самую медленную реализацию выбрали.
Лучше бы FFI и многопоточность пилили, а не этой хуйней занимались.
Аноним 29/10/15 Чтв 02:51:04 #73 №568384 
>>568297
чем читаешь то? не заменять, а добавить еще один скриптовый язык (guile) вдобавок к elisp
необходимость в этом назрела давно
по сути, нужна такая же эволюция, как случилось много лет назад - макросы teco были дополнены, а потом заменены elisp
Аноним 29/10/15 Чтв 03:28:19 #74 №568399 
>>568162
Clojure сейчас много где используется. Из популярных "инфраструктурных" проектов:
Apache Storm - распределенная система обработки данных в реальном времени
Puppet - автоматизация деплоймента и управления конфигурацией
Datomic - база данных

Алсо, много американских стартапов используют Clojure для бэкенда или веба (ClojureScript): Farmlogs, Climate Corporation, Factual, Prismatic.
Из крупных компаний в использовании Clojure замечены Wallmart и Amazon.
Аноним 29/10/15 Чтв 08:27:49 #75 №568463 
>>568399
Puppet на Ruby написан.
Аноним 29/10/15 Чтв 08:40:19 #76 №568467 
>>568463
>Puppet

http://www.infoworld.com/article/2687553/devops/puppet-server-drops-ruby-for-clojure.html
sageАноним 29/10/15 Чтв 11:33:17 #77 №568498 
14461075975610.png
Да, блядь, как этот ебучий емакс настроить???
Везде на скринах вижу запущенный нормальный slime, а не убогий репл sbcl'a. Он может и не убогий, но, блядь, при опечатке C-d не работает, как работает в консольке.
sageАноним 29/10/15 Чтв 11:36:33 #78 №568500 
>>568498
Но это мелочь. Другое - эти ебучие слои-хуи взрывают мозг. Нельзя, блядь, не придумывать хуй-пойми-какие сущности, а называть нормально?
sageАноним 29/10/15 Чтв 11:37:13 #79 №568501 
>>568500
Ебло бы разбить Столлману за этот пиздец.
Аноним 29/10/15 Чтв 13:47:39 #80 №568542 
14461156594860.png
14461156594871.png
14461156594872.png
>>568501
Тебе бы тупое ебло разбить, чтобы не задавал идиотских вопросов, а открыл и прочитал ёбаный ридми.
>>568500
Что, блять, сложного в слоях? Тебе даже знать нихуя не надо: нажал ебучую кнопочку (рис. 1), нашел интересующий тебя слой (рис. 2) И ЧИТАЕШЬ ЕБАНОЕ ОПИСАНИЕ СЛОЯ, ГДЕ ДЛЯ САМЫХ УМЕСТВЕННО ОТСТАЛЫХ ВСЁ РАСПИСАНО. И что тут сложного? Даже в ссаном эклипсе больше ебатни с расширениями, чем тут.
>>568498
Ты его через M-x run-lisp запускаешь что ли?
Аноним 29/10/15 Чтв 13:50:47 #81 №568544 
>>568463
Удваиваю вот этого >>568467 почтенного джентельмена. В дополнение, вот ссылки на исходники:
https://github.com/puppetlabs/puppet-server
https://github.com/puppetlabs/puppetdb
Аноним 29/10/15 Чтв 13:53:43 #82 №568546 
>>568544
Фууу, ну и параша. Открыл рандомный файл ( https://github.com/puppetlabs/puppetdb/blob/master/src/puppetlabs/puppetdb/archive.clj ), а там ЖАВА со скобочками.
Аноним 29/10/15 Чтв 14:00:13 #83 №568548 
>>568546
Двачую. Обещали крутой лисп, а сами какое-то говно подсовывают.
Аноним 29/10/15 Чтв 14:02:41 #84 №568550 
14461165618590.png
>>568542
> Ты его через M-x run-lisp запускаешь что ли?
run-inferior-lisp
А ебаный slime вообще нихуя не запускается как на скринах из интернетов [CL-USER]>
Аноним 29/10/15 Чтв 14:11:23 #85 №568552 
>>568550
Слой common-lisp активируй, блядь. Сколько тебе повторять, а?
Аноним 29/10/15 Чтв 14:12:53 #86 №568553 
>>568552
Да ёб твой емакс, активирован он у меня с самой установки
Аноним 29/10/15 Чтв 14:13:34 #87 №568554 
>>568552
покажи скрин твоего репла ебаного
Аноним 29/10/15 Чтв 14:17:03 #88 №568555 
>>568553
Я же вижу, что не активирован. Показывай конфиг.
Аноним 29/10/15 Чтв 14:18:28 #89 №568556 
>>568555
АКТИВИРОВАН!!!!1111
https://gist.github.com/fee5db03e8b85ccd761f
Аноним 29/10/15 Чтв 14:22:34 #90 №568558 
>>568556
>and press <SPC f e R> (Vim style) or <M-m f e R> (Emacs style) to install them.
Значит, ты этого не сделал.
Аноним 29/10/15 Чтв 14:23:35 #91 №568560 
>>568558
Блядь, да оно надо только чтобы не перезапускать имакс. А имакс уже перезапускался 100500 раз.
Аноним 29/10/15 Чтв 14:26:56 #92 №568562 
>>568560
Перезапускался емакс или емаксклиент?
Аноним 29/10/15 Чтв 14:27:19 #93 №568563 
>>568562
Емакс.
Аноним 29/10/15 Чтв 14:35:15 #94 №568564 
>>568563
Да, точно активирован. Мне чот казалось, что при установленном слайме lisp-mode как основной режим не используется.
В общем, запускай M-x slime или C-M-m s i
Аноним 29/10/15 Чтв 14:36:18 #95 №568565 
>>568563
В описании слоя, кстати, это написано.
Аноним 29/10/15 Чтв 14:39:58 #96 №568566 
>>568564
> M-x slime
Так не робит eval-defun выделенной функции.
Аноним 29/10/15 Чтв 14:52:49 #97 №568577 
>>568566
Он и не должен. slime-eval-defun и т.д.
C-M-x - eval defun, C-c C-r - eval region, C-c C-c - compile defun
Аноним 29/10/15 Чтв 16:36:09 #98 №568627 
>>568399
> Apache Storm
Написан на scala
> Puppet
Написан на руби.
Аноним 29/10/15 Чтв 16:37:07 #99 №568628 
>>568627
Тред жопой читал? Ссылки на исходники выше вкидывали.
Аноним 29/10/15 Чтв 18:57:38 #100 №568683 
14461342581510.jpg
>>568627
https://github.com/apache/storm
Если что, на Джаве там только АПИ для Джавы. Да, АПИ на Джаве по объёму больше, чем сама система, написанная на Clojure. Вот такая вот Джава многословная и такой Clojure компактный.
Аноним 29/10/15 Чтв 19:02:00 #101 №568684 
>>568546
Что тебе там не понравилось-то? Функция add-entry?
Реквестирую функцию добавляющюю файл в tar.gz архив на твоём любимом языке программирования.
Аноним 29/10/15 Чтв 19:26:22 #102 №568693 
>>568684
>Что тебе там не понравилось-то?
Ты правда не понимаешь?
Аноним 29/10/15 Чтв 19:26:52 #103 №568694 
>>568683
>Вот такая вот Джава многословная и такой Clojure компактный.
Да, кложура - один из самых компактных синтаксисов для явы.
Аноним 29/10/15 Чтв 19:42:02 #104 №568697 
Лиспаны, почему нету современных книжек про AI на лиспе? Могу без гугла назвать 2-3 книжки по сабжу на питоне.
Аноним 29/10/15 Чтв 19:44:51 #105 №568699 
>>568697
Потому что питон проще и популярнее.
Аноним 29/10/15 Чтв 19:46:06 #106 №568702 
>>568699
Но питон надоел уже.
Аноним 29/10/15 Чтв 19:47:13 #107 №568703 
>>568702
Кому надоел?
Аноним 29/10/15 Чтв 19:51:55 #108 №568706 
>>568703
Мне. Открываю одну из этих трех книг, вижу питоний код, закрываю. Тошнит уже.
Аноним 29/10/15 Чтв 20:10:54 #109 №568714 
>>568684
[code lang=common-lisp]
(ql:quickload :archive)

(use-package :archive)

(defun add-entry (archive filename)
(with-open-archive (tar archive
:direction :output
:if-exists :append)
(with-open-file (file filename
:element-type '(unsigned-byte 8))
(let ((entry (create-entry-from-pathname tar filename)))
(write-entry-to-archive tar entry :stream file)))))
[/code]
В который раз убеждаюсь, что с библиотеками в общелиспе далеко не так плохо, как говорят.
Аноним 29/10/15 Чтв 20:18:14 #110 №568718 
14461390942600.jpg
Вкатываюсь в Common Lisp. Начал читать Пола Грэма -- не доставило, сейчас PCL читаю.
Аноним 29/10/15 Чтв 20:21:28 #111 №568720 
>>568714
[code lang=common-lisp]
(ql:quickload :archive)

(use-package :archive)

(defmethod add-entry ((archive pathname) entry &key)
(with-open-archive (tar archive
:direction :output
:if-exists :append)
(add-entry tar filename)))

(defmethod add-entry ((archive archive) (filename pathname) &key)
(with-open-file (file filename
:element-type '(unsigned-byte 8))
(let ((entry (create-entry-from-pathname archive filename)))
(add-entry archive entry :stream file))))

(defmethod add-entry ((archive tar-archive) (entry archive::tar-entry)
&key (stream t))
(write-entry-to-archive archive entry :stream stream))
[/code]
Или более гибкий вариант.
Аноним 29/10/15 Чтв 20:24:42 #112 №568722 
>>568718
PCL - скорей быстрый старт, а не полноценный учебник.
Пол Грем же более полно раскрывает суть лиспа и лисп-вэя.
Аноним 29/10/15 Чтв 20:28:07 #113 №568723 
14461396879830.jpg
>>568722
Ну какой-то Грэм скучный. Впрочем, мне как раз нужно быстро вкатиться, потом буду заниматься деталями.
Аноним 29/10/15 Чтв 20:30:47 #114 №568725 
>>568723
Я обычно советую начинать с PCL, а после выборочно прочесть onlisp.
Аноним 29/10/15 Чтв 20:32:13 #115 №568726 
14461399339660.jpg
>>568725
Так и сделаю.
Аноним 29/10/15 Чтв 20:32:59 #116 №568727 
>>568723
Самая весёлая книжка по лиспу - Let Over Lambda.
Рекомендую читать под кислотой.
Аноним 29/10/15 Чтв 22:19:32 #117 №568789 
да вы ебанутые
с чего начинать?
да начинать сразу делать настоящее приложение: положим эмулятор терманала, ftp сервер или клиент и прочее
ну то есть то, что известно как делать
Аноним 29/10/15 Чтв 22:21:09 #118 №568792 
>>568727
> Самая весёлая книжка по лиспу - Let Over Lambda.
Где-то на жыдхабе лежит перевод, кстати.
Шапка Аноним 29/10/15 Чтв 22:23:21 #119 №568794 
>>568727
>>568792
Надо будет в шапку добавить.
Аноним 29/10/15 Чтв 22:23:53 #120 №568796 
>>568789
Что?
Аноним 29/10/15 Чтв 22:37:08 #121 №568809 
>>568794
Хм, на ЛОРе, кажется, была новость про перевод, но сейчас нагуглилось только кусками с лиспер.ру. Может к следующему перекату запилим репу с книгами?
Аноним 29/10/15 Чтв 22:42:15 #122 №568813 
>>568809
Да, можно. Да и саму шапку неплохо бы переработать.
Аноним 29/10/15 Чтв 23:00:53 #123 №568822 
>>568694
Иммутабельные коллекции, STM, CSP, трансдьюсеры, core.logic - это все синтаксис для Явы?
Ок.
Аноним 29/10/15 Чтв 23:21:09 #124 №568832 
>>568822
>Иммутабельные коллекции, STM, CSP, трансдьюсеры, core.logic - это все синтаксис для Явы?
Нет, это главы учебника по кложуре, которые обычно, судя по коду, пропускают за ненадобностью.
Аноним 29/10/15 Чтв 23:29:11 #125 №568837 
>>568832
Чет в голос с тебя. Ты хотя бы в курсе, что в кложе все коллекции из стандартной библиотеки иммутабельные?
Аноним 29/10/15 Чтв 23:32:33 #126 №568843 
>>568837
Я-то тут причем? Код же кложуристы пишут, а не я. Почему они предпочитают ебать всякие ArrayList вместо кложурных коллекций - для меня загадка.
Аноним 29/10/15 Чтв 23:47:16 #127 №568859 
>>568843
Давай ссылку на код на кложе с ArrayList
Аноним 29/10/15 Чтв 23:52:43 #128 №568863 
>>568859
Чому ты так бугуртишь? Открывай рандомный файл практически любого кложе-проекта и гитхубе и дивись - жава-макакам завезли нового, модного синтаксиса со скобочками.
Скала хотя бы на всё это говно гармонично ложится, а вот у кложуры так не получается - слишком разные.
Аноним 29/10/15 Чтв 23:59:30 #129 №568864 
>>568859
Ты мне лучше скажи, знаешь ли ты хотя бы один полноценный проект на кложе?
Именно на кложе, а не яве со скобками.
Всякие библиотеки для вычисления факториалов не снимая свитера и прочие трансдюсеры не в счёт.
Аноним 30/10/15 Птн 00:16:04 #130 №568870 
>>568796
>Что?
настоящее приложение, вот что
Аноним 30/10/15 Птн 00:22:50 #131 №568871 
>>568870
"Что?" в смысле "Кому и нахуя ты это написал?"
Аноним 30/10/15 Птн 00:26:50 #132 №568873 
>>568871
тут хуйней страдают
хочешь освоить язык - пиши на нем реальное приложение
точка
Аноним 30/10/15 Птн 10:33:10 #133 №569066 
>>568863
> Открывай рандомный файл практически любого кложе-проекта и гитхубе
Ты окончательно теряешь связь с реальностью.

В Гитхабе есть поиск по коду. Вводишь там ArrayList, выбираешь язык Clojure - и вуаля, 0 результатов.

И на то есть причины:
1. Встроенный PersistentVector легче создать - [1 2 3] вместо (java.util.ArrayList. [1 2 3])
2. Если для супер-производительности нужна мутабельность, то есть transient
3. PersistentVector можно передовать в вызовы джавовских библиотек прямо так, поскольку он реализует все стандартные джавовские инетрфейсы (Collection, List и т.д.)

Давай ты уже признаешь, что ты обосрался, хорошо?
Аноним 30/10/15 Птн 10:34:54 #134 №569067 
>>568864
> Всякие библиотеки для вычисления факториалов не снимая свитера и прочие трансдюсеры
Трансдьюсеры - часть стандартной библиотеки.
Тебя уже не остановить, ты обсираешься по кд.

Список проектов тебе скинули выше.
Напоминаю, что на гитхабе есть поиск по коду, в нём ты найдёшь ещё больше проектов.
Аноним 30/10/15 Птн 12:52:04 #135 №569130 
14461987240390.png
>>569066
>transient
Аноним 30/10/15 Птн 13:21:27 #136 №569150 
14462004875820.jpg
>>569066
https://github.com/search?q=ArrayList+extension:clj
>0
>1519
Обосрался тут только ты.
Аноним 30/10/15 Птн 14:06:49 #137 №569184 
Поясните мне, почему в комон лиспе так неудобно писать лямбды?
Ну это же пиздец: #'(lambda ...)
Аноним 30/10/15 Птн 14:13:15 #138 №569190 
>>569184
Потому что можнозделать! Напиши ридер-макрос, который позволяет делать так: #~(f 1 @ 3), и чтобы оно парсилось в лямбду с одним параметром, кототрая внутри подставляет его вторым аргументов в f. Потом доделай чтоб можно было так: #~(f 1 @2 3 @1) - чтобы 2 аргумента и второй подставлялся первым и тд. Поверь, все читатели твоего кода и пользователи твоей библиотеки оценят твою изобретательность! Lisp-way!
Вот здесь есть примеры подобного: http://clhs.lisp.se/Body/f_set__1.htm
Аноним 30/10/15 Птн 14:15:52 #139 №569192 
>>569184
Допиши сам.

Не успел, >>569190 опередил.
Аноним 30/10/15 Птн 14:17:29 #140 №569194 
>>569190
Блять, ну это же пиздец. Я понимаю что можнозделать, но это значит что каждый ебаный мудак будет делать свой костыль. Кому это надо то?
Аноним 30/10/15 Птн 14:18:18 #141 №569197 
>>569194
Не надо -- не пиши.
Аноним 30/10/15 Птн 14:22:32 #142 №569199 
>>569194
Лол, как тебя вообще в лисп занесло такого? Лисперы пишут dsl'и на каждый чих. Для описания лямбд, для описания циклов, свои объектные системы, и так далее. Если в языке вообще есть гибкие и удобные макросы - там уже будет "каждый ебаный мудак будет делать свой костыль", но в лиспе это практически сама парадигма.
Аноним 30/10/15 Птн 14:29:09 #143 №569205 
>>569184
Во-первых, они в общелиспе малоиспользуемы. loop/iter предпочтительнее, чем map/mapc/mapcar/etc или reduce.
Во-вторых, если нужно, то используй ридер. Таковой есть в rutils, например.
Аноним 30/10/15 Птн 14:35:58 #144 №569209 
>>569205
Ясно, спасибо. Пока обмазываюсь CLOS, loop дальше по тексту.
Аноним 30/10/15 Птн 14:52:22 #145 №569226 
>>569150
Действительно.
Вообще, правильно искать вот так:
https://github.com/search?l=&q=ArrayList+language%3AClojure&ref=advsearch&type=Code&utf8=✓
Я просто был на планшете и увидев 0 результатов на первой вкладке (репозитории), не заметил что там есть другие.

А теперь посмотри внимательно на эти результаты. Что ты там видишь?
Правильно, туториалы по интеропу Clojure с джавой. А также какие-то юнит-тесты для старого плагина под Идею.
Ни одного настоящего проекта неписанного ненаркоманом там нет (по причинам, которыя я обозначил выше).
Аноним 30/10/15 Птн 14:52:56 #146 №569227 
>>569184
В cl21 мне понравился ридер #'
#'(and integerp (or oddp zerop)) => (conjoin #'integerp (disjoin #'oddp #'zerop))
#'(not fn) => (complement #'fn)
#'(compose f g) => (compose #'f #'g)
Из последнего, по-моему, можно было бы и убрать compose
Аноним 30/10/15 Птн 15:04:13 #147 №569236 
>>569226
Успокойся уже, евангелист. Тот факт, что на кложуре пишут как на яве со скобочками ты пропустил, зато прицепился к ArrayList, который использовался как имя нарицательное, и стал с яростью опровергать.
Типичное поведение фанатика.
Аноним 30/10/15 Птн 15:05:24 #148 №569239 
14462067248340.jpg
>>569226
Ну, во-первых, плагин не такой уж и старый, вчера обновлялся, пускай даже его и заменяют новой IDEшечкой. Во-вторых, говорить, что там только юнит-тесты и туторы -- правильно, но ты всё равно скрываешь, что там есть и нормальный код.

Да и вообще.
>ненаркоманом
>Clojure
>не наркоман
Аноним 30/10/15 Птн 15:26:02 #149 №569249 
http://exercism.io/languages/lisp
Закину это сюда. Дочитаю PCL, займусь упражнялками оттуда.
Аноним 30/10/15 Птн 15:30:24 #150 №569253 
>>569249
Можно будет в шапку добавить.
Шапка Аноним 30/10/15 Птн 15:31:41 #151 №569254 
14462083014060.jpg
>>569249
Добавьте в шапку.
Аноним 30/10/15 Птн 15:32:10 #152 №569255 
14462083305640.jpg
>>569253
Ну ёб твою, пока выбирал аватарку, опять всё проебал.
Аноним 30/10/15 Птн 15:55:53 #153 №569276 
>>569236
Как ты умело подменяшь предмет дискуссии.
Я привёл (неполный) список вещей, который есть в языке и которые полностью меняют подход к программированию.
> Иммутабельные коллекции, STM, CSP, трансдьюсеры, core.logic
Ты, с высоты своего глубокого познания, заявил, что это всё неиспользуется. Дополнил ты это метким замечанием, что вместо PersistentVector в кложе принято использовать ArrayList.
Это всё говорит о том, что ты не имеешь не малейшего представления ни о языке, ни о том как на нём пишут. Всё что у тебя есть это услышанное где-то клише "ява со скобочками", которое ты повторяешь как заклинание.
Аноним 30/10/15 Птн 15:57:15 #154 №569280 
>>569239
Да нет там нормального кода, я же писал выше почему.
Единственная причина использовать ArrayList в Clojure - это использование ява-библиотеки которая принимает в качестве аргумента только ArrayList (а не List или Collection) - что является в яве дурным тоном.
Аноним 30/10/15 Птн 16:35:41 #155 №569311 
14462121412360.jpg
>>569280
Ну ясен хуй, что принимать только конкретную реализацию -- это признак присутствия говнокодерков. В любом случае, ты меняешь показания.

Мне надоело, не отвечай на этот пост.
Аноним 30/10/15 Птн 16:42:25 #156 №569315 
>>569276
Вот опять ты, как и полагается фанатикам, пропустил мимо ушей основной тезис и гнешь палку совершенно в другом направлении.
> и которые полностью меняют подход к программированию.
Айлол, да не смеши. Вот этот подход https://github.com/puppetlabs/puppetdb/blob/master/src/puppetlabs/puppetdb/archive.clj ничем не исправишь. И он является основным для кложуры.
Кстати, ты так и не ответил
>знаешь ли ты хотя бы один полноценный проект на кложе? Именно на кложе, а не яве со скобками.
Аноним 30/10/15 Птн 17:36:55 #157 №569363 
>>569311
> ты меняешь показания.
Где я их меняю, интересно? То что я по гитхабу неправильно искал? Ну я признаю это, я об этом и написал.
Но ты успокоился, это главное.
Аноним 30/10/15 Птн 17:39:48 #158 №569367 
Скобконы, как то видел туториал, там делали толи текстовый квест, толи рогалик, вроде бы на clojure. Оформлено в виде онлайн-книги. Ссылку проебал, может поможете найти?
Аноним 30/10/15 Птн 17:43:35 #159 №569372 
>>569315
> Вот этот подход https://github.com/puppetlabs/puppetdb/blob/master/src/puppetlabs/puppetdb/archive.clj ничем не исправишь.
Ну так напиши, что тебе там не нравится. Я предложил одну гипотезу - кусок кода где использутеся джавовская либа для архивирования. Ты вроде говоришь, что нет. Тогда что? Мне что, с тобо в угадайку играть?

>знаешь ли ты хотя бы один полноценный проект на кложе? Именно на кложе, а не яве со скобками.
Уже отвечал. Бери любой проект на кложе из топа гитхаба и смотри.
Только что ты понимашье под "джава со скобками"? Использование джавовских библиотек?
Аноним 30/10/15 Птн 17:44:33 #160 №569373 
>>569367
Land Of Lisp? Он про Common Lisp, но возможно было переложение на Clojure (сам автор книги Конрад Барски сейчас на Clojure пишет, кстати)
Аноним 30/10/15 Птн 17:46:04 #161 №569375 
>>569367
Может это?
http://stevelosh.com/blog/2012/07/caves-of-clojure-01/
Аноним 31/10/15 Суб 02:41:46 #162 №569665 
>>569373>>569375
Непохоже, там было оглавление и ссылки типа "назад"-"вперед" и все онлайн-бесплатно-без смс.
Аноним 31/10/15 Суб 21:23:42 #163 №570443 
14463158225430.png
Пощупал этот ваш newlisp. Сначала оче понравилась изкоробочность, как оказалось, далеко не всего необходимого для скриптования, простота использования, двим на уровне перла, но когда дело дошло до скриптов чуть серьезнее, вскрылось много неприятных особенностей.
Например, нет нормальных словарей, вместо них ассоциативные списки и контексты. Первые неэффективны и не слишком удобны в использовании (добавляются элементы с помощью push, а не (setf (lookup key table) value)), а вторые имеют глобальное имя и накладывают некоторые ограничения на ключ, т.к. он используется как имя переменной внутри контекста (контекст:ключ = значение).
Также были обнаружены какие-то странные ограничения на длину строк, проблемы с производительностью при обработке не крошечных, но и не больших объемов данных: например, время обработки строки функцией parse возрастает никак не линейно.
К тому же, подпортил впечатления guiserver.jar, который успешно создавал окошко, но ничего в нём не рисовал/отображал.
Аноним 31/10/15 Суб 23:07:33 #164 №570485 
>>566769
Уже есть hemlock - клон емакса на общелиспе с гуем на говнокутях.
Аноним 31/10/15 Суб 23:23:50 #165 №570494 
>>570485
Не очень он популярный, если судить по тому, что даже в аур не завезли.
Аноним 31/10/15 Суб 23:28:19 #166 №570496 
>>570494
Кстати, пытался запустить http://lisper.ru/forum/thread/1241 но чет не осилил. Ньюфаженька я.
Аноним 01/11/15 Вск 18:40:14 #167 №570836 
Какие есть мощные асинхронные библиотеки в общелиспе? Нужно отправлять данные на несколько тысяч доменов, в сутки около 100 000 POST/GET.

Нет, это не шутка, питон или лисп.
Аноним 01/11/15 Вск 22:58:13 #168 №571060 
>>570836
drakma/async
Аноним 01/11/15 Вск 23:01:54 #169 №571065 
>>570836
Вообще, для твоей задачи так и напрашивается tcl
Аноним 01/11/15 Вск 23:31:19 #170 №571075 
>>571060
Точнее, drakma-async - асинхронная версия библиотеки для http-запросов.
>>570836
>Какие есть мощные асинхронные библиотеки в общелиспе?
cl-async (именно её drakma-async и использует) для асинхронного IO + blackbird для promise'ов.
http://orthecreedence.github.io/blackbird/
http://orthecreedence.github.io/cl-async/
Алсо, http://orthecreedence.github.io/cl-async/dns

Аноним 01/11/15 Вск 23:50:09 #171 №571084 
>>569249
Еще немного годноты: http://www.youtube.com/watch?v=ymSq4wHrqyU
Аноним 02/11/15 Пнд 00:14:35 #172 №571094 
>>570496
Ух-ты, интересный проект. Да ещё и на тикиле.
>но чет не осилил
Там ж подробно всё описано в doc/INSTALL.md
Аноним 02/11/15 Пнд 01:57:24 #173 №571175 
Как выравнивать код в define секции в dr racket?
Аноним 02/11/15 Пнд 02:01:18 #174 №571176 
есть две реализации факториала, какая лучше?
1. (define (factorial n)
(if (= n 0)
1
( (factorial (- n 1)) n)))

2. (define (factorial n)
(if (> n 1)
(
n (factorial(- n 1)))
n))
Аноним 02/11/15 Пнд 02:06:28 #175 №571179 
>>571176
Они одинаково неоптимальные.
Аноним 02/11/15 Пнд 02:20:42 #176 №571183 
>>571176
http://pastebin.com/Y645shBb
починился
Аноним 02/11/15 Пнд 02:57:19 #177 №571192 
Ребят, а как пользоваться PlaneT? где взять клиент?
Аноним 02/11/15 Пнд 10:43:44 #178 №571251 
>>571176
в обеих нет tail call optimization
Аноним 02/11/15 Пнд 12:36:36 #179 №571289 
>>571176
(defn fact [n]
(reduce * (take n (iterate inc 1)))
Аноним 02/11/15 Пнд 15:15:48 #180 №571377 
14464665488960.png
Делал все по этой инструкции http://habrahabr.ru/post/259737/ и запускаю хэлоуворд на пике. С емаксом мэйкфайлами и лиспом ни разу не работал. Как правильно программы запускать? Это же интерпретатор, а не компилятор и не редактор. Куда жать чтобы скомпилировать? Иди как в консоли это сделать?
Аноним 02/11/15 Пнд 15:56:19 #181 №571403 
>>571377
Запуск последнего выражения C-j, только строку переведи.
Аноним 02/11/15 Пнд 16:06:30 #182 №571412 
>>571403
> C-j
Я не умею пользоваться емаксом. Куда это писать?
Аноним 02/11/15 Пнд 16:07:46 #183 №571414 
>>571412
C - это ctrl.
Аноним 02/11/15 Пнд 16:11:03 #184 №571416 
>>571377
В коммон лиспе всё иначе, чем в других компилируемых языках. Компилятор здесь - часть лисп-системы, рантайма именно поэтому он такой же программируемый, как и любая другая часть языка, а не отдельная сущность. И комиляции, как отдельной стадии, по сути не существует.
Чтобы скомпилировать/перекомпилировать функцию через slime, достаточно нажать C-c C-c, тогда он отправить в репл что-то вроде (defun foo ...) (compile 'foo).
Если ты хочешь сделать исполняемый файл, то нужно сохранить образ рантайма. В sbcl это делается с помощью функции sb-ext:save-lisp-and-die http://sbcl.org/1.0/manual/Saving-a-Core-Image.html , но есть и более удобные решения, такие как roswell (ros build "имя файла") https://github.com/snmsts/roswell или cl-launch http://cliki.net/cl-launch
Аноним 02/11/15 Пнд 16:12:02 #185 №571417 
>>571377
>Делал все по этой инструкции
Если ты делал по той инструкции, то почему результат отличается?
Аноним 02/11/15 Пнд 16:13:01 #186 №571418 
>>571416
>достаточно нажать C-c C-c
В буфере с кодом, само собой, а не в репле.
Аноним 02/11/15 Пнд 16:16:11 #187 №571419 
>>571417
Правильный результат. Только там не написано что делать дальше.

>>571414
Перевод строки. Что должно быть?

>>571416
Щас попробую.
Аноним 02/11/15 Пнд 16:19:20 #188 №571422 
14464703605460.png
>>571418
Это буфер с кодом? Ничего не происходит.
Аноним 02/11/15 Пнд 16:20:07 #189 №571423 
>>571419
>Щас попробую.
На самом деле, не стоит тебе сейчас с этим заморачиваться.
Исполняемый файл обычно делают, когда уже всё готово. А некоторые даже не делают, а продолжают запускать через репл
>>571422
Запусти slime ( M-x slime )
Аноним 02/11/15 Пнд 16:23:49 #190 №571426 
>>571422
А вообще, читай PCL. Там и слаймом обучают пользоваться.
Аноним 02/11/15 Пнд 16:26:39 #191 №571433 
>>571423
>M-x slime
Эм большое это что?

>>571426
Мне с лиспом пару дней поиграться, а там 400 страниц. Но если за пару дней не справлюсь почитаю.
Аноним 02/11/15 Пнд 16:30:20 #192 №571437 
>>571433
>Эм большое это что?
Alt
>Мне с лиспом пару дней поиграться, а там 400 страниц.
Без чтива разбираться ты дольше будешь. К тому же, никто не обязывает тебя читать полностью.
Аноним 02/11/15 Пнд 16:36:06 #193 №571440 
>>571437
Альт икс тоже не помогает. Ладно спасибо. Я в гугл, а потом за ту книгу. Пока.
Аноним 02/11/15 Пнд 16:38:11 #194 №571446 
>>571440
>Альт икс тоже не помогает.
Слайм не запустился или что?
Аноним 02/11/15 Пнд 16:52:35 #195 №571462 
14464723553420.png
14464723553431.png
>>571446
Хуй знает. Жму альт икс и первый пик. Потом контрол цэ 2 раза или ентер и второй пик.
Аноним 02/11/15 Пнд 16:56:22 #196 №571465 
>>571462
M-x (альт икс твой) вызывает командную строку (ты ее снизу в минибуфере видишь), которая позволяет тебе выполнять разное. Тебе нужно нажать M-x набрать в минибуфере slime и enter.
Аноним 02/11/15 Пнд 17:10:13 #197 №571471 
>>571462
> (write "Здравствуй, мир!")
Аноним 02/11/15 Пнд 17:27:57 #198 №571485 
>>571465
>>571471
Выскочила вторая консоль в которой можно запускать программы, а писать их там не удобно. Как сделать чтобы я писал их в обычном буфере для набора текста, а запускались они там?
Аноним 02/11/15 Пнд 17:30:20 #199 №571488 
14464746201470.png
>>571485
Вот такая.
Аноним 02/11/15 Пнд 17:31:50 #200 №571491 
>>571485
Когда находишься в буфере с текстом, поищи в меню режима (SLIME) что-то вроде send region, send line, send s-exp и т. п. И там будет написано сочетание клавиш.
Аноним 02/11/15 Пнд 17:40:02 #201 №571497 
>>571491
>send
Нигде в том меню нет такого слова.
Аноним 02/11/15 Пнд 17:44:02 #202 №571500 
>>571497
C-c :
Read a single Lisp expression in the minibuffer, evaluate it, and print the value in the echo area (slime-interactive-eval).
C-x C-e
Evaluate the Lisp expression before point, and print the value in the echo area (slime-eval-last-sexp').

C-M-x
Evaluate the toplevel form containing or after point, and print the value in the echo area (slime-eval-defun).
C-x C-p
Evaluate the Lisp expression before point, and pretty-print the value(s) into a new display buffer (slime-pprint-eval-last-expression).
M-x slime-eval-region
Evaluate all the Lisp expressions in the region.
M-x slime-eval-buffer
Evaluate all the Lisp expressions in the buffer.
C-x M-e
Evaluate the Lisp expression before point, print the value in the echo area and display the output buffer (slime-eval-last-expression-display-output).
C-c C-u
Remove the function binding for the symbol at point (slime-undefine-function).

Нажимаешь ctrl-x, потом ctrl-e

Отсюда - http://www.cliki.net/slime%20features
Аноним 02/11/15 Пнд 17:47:02 #203 №571501 
>>571497
В меню SLIME->Evaluation и SLIME->Compilation
Аноним 02/11/15 Пнд 17:48:11 #204 №571504 
14464756913570.png
>>571497
1. Открываешь файл с расширением .lisp
2. Пишешь туда свою хуйню
3. Тыкаешь С-с С-с это эвалит твою хуйню в репл
4. Тыкаешь C-c C-z или M-x slime
5. В репле вызываешь свою хуйню
6. ???
7. Выгода
Аноним 02/11/15 Пнд 17:54:04 #205 №571509 
>>571501
>>571504
>>571500
На удивление лиспотред полон добрых анонов готовых помочь. Посмотрите, например на го-тред, где одни петухи агрессивные.
Аноним 02/11/15 Пнд 17:55:28 #206 №571510 
14464761284350.png
Кажется С-с С-с заработало. Всем спасибо.
Аноним 02/11/15 Пнд 18:00:19 #207 №571513 
>>571510
C-c C-c используй для defun, defstruct, defclass и прочих def
Просто для выполнения кода C-c C-e или C-c C-r (последний для выделенной области)
Аноним 02/11/15 Пнд 18:05:09 #208 №571514 
14464767098000.png
14464767098001.png
>>571513
Что-то с C-c C-c не то. Но C-c C-e выводит второй пик и нормально выполняет ведённые команды. Если выделить весь код и нажеть C-c C-r то всё работает.
Аноним 02/11/15 Пнд 18:05:34 #209 №571515 
>>571514
Порядок картинок перепутал.
Аноним 02/11/15 Пнд 18:06:37 #210 №571518 
>>571514
Я перепутал. C-x C-e, а не C-c C-e
Аноним 02/11/15 Пнд 18:08:30 #211 №571522 
>>571514
>Что-то с C-c C-c не то.
C-c C-c = slime-compile-defun
Так что всё то.
Аноним 02/11/15 Пнд 18:10:56 #212 №571524 
14464770566680.png
>>571518
Отлично. То что надо. А что делать если 1 строчки для вывода будет мало?
Аноним 02/11/15 Пнд 18:12:45 #213 №571526 
>>571524
Минибуфер будет расширен чтобы влезло.
Алсо смотри буфер Messages в нем лог всякой хуйни.
Аноним 02/11/15 Пнд 18:15:48 #214 №571527 
>>571526
Спасибо. Очень помогли.
Аноним 02/11/15 Пнд 18:17:23 #215 №571530 
>>571524
Для всяких сложных структур используй инспектор C-c I
Аноним 02/11/15 Пнд 18:49:50 #216 №571547 
14464793902600.png
Фууу... А так хотелось пощупать этот CEPL
Аноним 02/11/15 Пнд 20:19:37 #217 №571632 
Квиклисп обновился http://blog.quicklisp.org/2015/11/october-2015-quicklisp-dist-update-now.html
Аноним 03/11/15 Втр 00:18:22 #218 №571861 
>>571192
(require (planet <имя пакета>))
Аноним 03/11/15 Втр 00:36:02 #219 №571871 
Лиспаны, поясните за McCLIM. Если он такой плохой, то почему его до сих пор пилят?
Аноним 03/11/15 Втр 13:29:38 #220 №572153 
>>568219
DSL, eDSL
Аноним 03/11/15 Втр 19:41:01 #221 №572361 
>>565035 (OP)
> Значимые изменения в этом релизе:

> портирование на архитектуру ARM64/Linux (есть возможность запускать на Android платформе)
> новая реализация интерпретатора, который по возможностям превосходит уже существующий SB-EVAL (быстрее в 20 раз). По-умолчанию он выключен, но шаги для его активации описаны в файле src/interpreter/README.

> Steel Bank Common Lisp (SBCL) — одна из реализаций языка программирования общего назначения Common Lisp. SBCL отличают высокая производительность генерируемого компилятором кода. Исходные коды открыты под смешанной лицензией BSD-style и public-domain.
> http://www.sbcl.org/news.html
Аноним 03/11/15 Втр 20:19:00 #222 №572390 
>>572361
Толку только с него на ведроиде... SBCL в дальвик не встроишь, наоборот - тоже трудно.
Аноним 03/11/15 Втр 20:24:09 #223 №572392 
>>572390
Наверное, самое интересное здесь вот это
> новая реализация интерпретатора, который по возможностям превосходит уже существующий SB-EVAL (быстрее в 20 раз)
Аноним 03/11/15 Втр 20:26:04 #224 №572394 
>>572392
А, я так подумал, что это касается только ARM.
Аноним 03/11/15 Втр 20:34:11 #225 №572400 
>>572394
Завтра пересоберу пакет с этой фишкой, надо бы тестов погуглить.
Аноним 03/11/15 Втр 20:36:43 #226 №572401 
>>572361
SBCL же не интерпретирует код, а компилирует и исполняет. Если так, то что это за sb-eval такой?
Аноним 03/11/15 Втр 20:41:59 #227 №572404 
>>572401
>As with sb-eval, the SB-EXT:EVALUATOR-MODE variable can be set to :INTERPRET or :COMPILE.
>The REPL defaults to :INTERPRET if :sb-fasteval is enabled.
Вот оно что. В общем, ускорение может быть в тех случаях, когда компиляция во время выполнения занимала непозволительно много времени, а простая интерпретация не давала нужной производительности.
Аноним 03/11/15 Втр 20:48:20 #228 №572408 
>>572404
То есть это что-то вроде jit?
Аноним 03/11/15 Втр 20:54:59 #229 №572411 
>>572408
Врядли там jit используется.
Просто теперь есть и быстрый интерпретатор.
Дело в том, что процесс компиляции в sbcl занимает довольно много времени из-за кучи оптимизаций, что не всегда оправдано: например, если ты в рантайме генерируешь код, время исполнения которого соизмеримо со временем компиляции.
Теперь появился второй стул: быстрый интерпретатор.
Аноним 03/11/15 Втр 21:10:02 #230 №572418 
>>572411
Я понимаю только то, что лисп это вообще какая-то другая планета. Серьезно, пытаюсь понять что здесь и как, но это совершенно _иное_, от привычных яп. Хоть компилируемых, хоть интерпретируемых. Но, сука, как же манит.
Аноним 03/11/15 Втр 21:39:06 #231 №572455 
Запилил ебилд для нового sbcl. Добавлен USE-флаг fasteval
https://bpaste.net/show/f8ad63187b7a
Аноним 04/11/15 Срд 01:03:59 #232 №572615 
>>572418
На самом деле всё просто:
- Программа исполняется по одному экспрешену. Экспрешен это всё что внутри пары скобок на самом верхнем уровне.
- Каждый экспрешен проходит следующий путь:
1. Read - чтение. Преобразует текст в структуры данных. В случае старых лиспов это только списки. На этом этапе работают reader macros.
2. Macroexpand - разворачивание макросов. Структуры данных, представляющие код, трансформируются, согласно правилам которые ты (или кто-то другой написал). Прелесть лиспов как раз в том, что при написании макросов ты работаешь с обычными структурами данных (а не хитровыебанным AST API), и у тебя для этого доступны все те же средства языка, которые ты используешь для работы с данными внутри программы.
3. Eval - исполнение. Преобразованные структуры данных (представляющие код) передаются на исполнение. По сути не важно, интерпретация это, компиляция с последующим выполнением, или что-то гибридное (например, jit).

Эта модель валидна во всех случаях. Не важно, работаешь ты в REPLе или скармливаешь компилятору десяток файлов сразу.
Именно в её рамках и стоит рассуждать.
Аноним 04/11/15 Срд 01:05:48 #233 №572616 
Лиспаны, чем декодировать escaped unicode?
Аноним 04/11/15 Срд 08:49:30 #234 №572697 
14466161700870.png
Как включиться это ускорение в Арче?
Аноним 04/11/15 Срд 08:56:58 #235 №572698 
>>572697
Нашел
Аноним 04/11/15 Срд 14:02:56 #236 №572832 
>>572697
Затестил?
Аноним 04/11/15 Срд 14:25:24 #237 №572853 
>>572832
Лол, нет. Тестов не нашел.
Аноним 04/11/15 Срд 15:08:06 #238 №572898 
>>572853
Попробуй на факториалах:[code lang=common-lisp]
(let ((sb-ext:evaluator-mode :interpret))
(time (eval '(loop :repeat 10000 :do
(loop :for i :from 1 :to 100
:for fac := 1 :then ( i fac)
:finally (return fac))))))

(let ((sb-ext:
evaluator-mode :compile))
(time (eval '(loop :repeat 10000 :do
(loop :for i :from 1 :to 100
:for fac := 1 :then (
i fac)
:finally (return fac))))))
[/code]
Аноним 04/11/15 Срд 15:13:22 #239 №572905 
>>572898
Старый sb-eval и правда пиздец какой медленный:
Интерпретация sb-eval'ом:[code]
Evaluation took:
13.176 seconds of real time
13.780000 seconds of total run time (13.780000 user, 0.000000 system)
104.58% CPU
16,250,012 forms interpreted
22,530,968,640 processor cycles
212,020,040 bytes consed
[/code]

Компиляция: [code]
Evaluation took:
0.362 seconds of real time
0.000000 seconds of total run time (0.000000 user, 0.000000 system)
0.00% CPU
1 form interpreted
5 lambdas converted
619,318,248 processor cycles
38,787,320 bytes consed
[/code]

fasteval затестить не могу, sbcl ещё не обновлял.
Аноним 04/11/15 Срд 17:02:26 #240 №573010 
>>572905
fasteval:
[code]Evaluation took:
1.371 seconds of real time
1.324000 seconds of total run time (1.312000 user, 0.012000 system)
[ Run times consist of 0.052 seconds GC time, and 1.272 seconds non-GC time. ]
96.57% CPU
3 forms interpreted
2,345,886,528 processor cycles
40,088,000 bytes consed[/code]
На этом примере в 10 раз быстрее. Охуеть.
Аноним 05/11/15 Чтв 00:33:05 #241 №573499 
14466727852790.png
Что за alloc_overflow_eax? Бигнам типа создается или что?
Аноним 05/11/15 Чтв 03:56:48 #242 №573612 
https://github.com/pkhuong/cl-simd-vm
Аноним 05/11/15 Чтв 17:51:42 #243 №574043 
Лиспаны, а никто eshell не пользуется в качестве шелла для скриптинга?
Аноним 05/11/15 Чтв 18:21:19 #244 №574067 
>>574043
Нет, зачем? Запускать емакс из-за для запуска скрипта - нецелесообразно.
Аноним 05/11/15 Чтв 18:42:46 #245 №574136 
>>574067
Ну я eshell'ом постоянно пользуюсь для простых вещей.
Но если мне надо захуячить разовый скрипт, я открываю rxvt и пишу скрипт в нем на zsh.
Можно, конечно, открыть ansi-term и писать скрипт в нем.
Но мне хочется попробовать хуячить такие одноразовые скрипты именно на eshell. Ибо от диалекта sh хочется блевать в основном.
Аноним 05/11/15 Чтв 18:45:21 #246 №574142 
>>574136
Пили одноразовые скрипты на newlisp.
А лучше повесь терминальчик на хоткей.
Аноним 05/11/15 Чтв 18:46:42 #247 №574146 
>>574142
Нормальный терминал, а не ansi-term и не eshell
Аноним 05/11/15 Чтв 18:58:10 #248 №574160 
>>574146
Ты мне говори что делать, я и так знаю что мне надо.
Не пользуешься ешелом, так и не лезь. Я ищу тех кто пользуется.
Аноним 06/11/15 Птн 01:41:08 #249 №574457 
>>565035 (OP)
Стоит ли его использовать в вебе ? Насколько лисп превосходит питон в этой сфере ?
Аноним 06/11/15 Птн 01:57:30 #250 №574462 
>>574457
>Стоит ли его использовать в вебе ?
Да, для веба вполне пригоден.
>Насколько лисп превосходит питон в этой сфере ?
На сколько чего?
Аноним 06/11/15 Птн 02:05:29 #251 №574467 
>>574457
В общем, смотри в сторону restas или clack + какой-либо из фреймворков, cl-closure-template ну и т.д.
Аноним 06/11/15 Птн 15:36:58 #252 №574668 
>>574457
Что ты понимаешь под вебом?
Если серверную сторону, то в современной веб-разработке нужны только REST-сервисы, т.е. подойдёт любой язык, который имеет HTTP-middleware и умеет общаться с базой данных. Так что тут нечего выпендриваться, даже nodejs сойдёт.
Если ты имеешь в виду браузер, то единственный жизнеспособный вариант - это ClojureScript, его действительно используют в продакшене многие стартапы (некоторые даже опенсорсят свой продакшен код, лол: https://github.com/circleci/frontend)
Но надо понимать некоторые вещи про ClojureScript:
1. Это 100% экосистема React. Соответственно, для любого проекта, для которого React будет оверкилом, ClojureScript будет ещё большим оверкилом.
2. ClojureScript + какая-нибудь обвязка для React (Om/Reagent/Rum) + Secretary + Figwheel даёт некоторые преимущества перед стандартным React стэком (React + Immutable.js + Redux + React-router + Webpack), но так же имеет и некоторые недостатки по сравнению с ним. Так что тут получается шило на мыло. Имеет смысл писать на ClojureScript только если у тебя бэкенд на Clojure.
Аноним 06/11/15 Птн 15:39:34 #253 №574670 
>>574668
https://github.com/circleci/frontend
(скобка прилипла)
Аноним 06/11/15 Птн 17:00:02 #254 №574752 
>>574668
>Если ты имеешь в виду браузер, то подойдёт любой язык, который транслируется в js и умеет работать с dom. Так что тут нечего выпендриваться, даже js сойдёт.
Аноним 06/11/15 Птн 17:15:37 #255 №574764 
14468193372340.png
>>574670
Это самое охуенное приветствие, которое я видел. Они няши :3
Аноним 06/11/15 Птн 17:20:40 #256 №574770 
>>574764
Сейчас растаешь от их радушия, включишь сдуру js и... Добро пожаловать в ботнет! Майним битки вместе.
Аноним 06/11/15 Птн 17:30:18 #257 №574772 
>>574764
У них там, кстати, гуглоаналитикс и адролл
Аноним 06/11/15 Птн 18:32:17 #258 №574820 
>>574752
Не совсем так. Если ты, конечно, разделяешь один из тезисов статьи "Out Of The Tarpit", о том что основной источник accidental complexity - это управление состоянием.
Суть в том, что современный бэкенд - это просто прослойка между браузером и базой данных, которая проверяет аутентификацию и транслирует запросы от браузера в запросы к базе данных. Никакого управления состоянием там нет, всё управление состоянием в базе данных.
А вот во фронтенде управление состоянием есть, поэтому тут важно выбрать подход, который минимизирует accidental complexity. Например, React. ну или мучительно ебать себя в жопу лапшой из коллбэков Жейквери, или скоупами и директивами Ангуляра, - тут никто не в праве тебе запретить
Аноним 06/11/15 Птн 18:33:16 #259 №574822 
>>574772
NoScript позволяет разрешить только часть скриптов, если заморочишься.
Аноним 06/11/15 Птн 19:21:18 #260 №574845 
>>574820
Редко вся логика заканчивается на запросах в бд, а во фронтенде ей не место, он другие задачи решает.
Аноним 07/11/15 Суб 12:43:52 #261 №575218 
https://gitlab.common-lisp.net/ecl/ecl-android
Аноним 07/11/15 Суб 13:55:35 #262 №575261 
>>575218
> Status [v. 0.0.1]
ясно. понятно.
Аноним 07/11/15 Суб 14:24:48 #263 №575280 
>>575261
Спешишь куда-то? Вливайся.
Аноним 07/11/15 Суб 18:00:22 #264 №575454 
>>575218
Они с гихаба переехали? Или это другой проект?
Аноним 07/11/15 Суб 18:38:29 #265 №575469 
Тем временем CCL обновился http://trac.clozure.com/ccl/wiki/ReleaseNotes/1.11
Аноним 09/11/15 Пнд 00:27:24 #266 №576516 
бамп
Аноним 09/11/15 Пнд 01:44:17 #267 №576557 
>>576516
Кто ж так бампаем в лиспотреде? Надо так:
(бамп)
Аноним 09/11/15 Пнд 08:31:54 #268 №576622 
>>576557
Лучше так
(bump thread)
Аноним 09/11/15 Пнд 12:12:57 #269 №576712 
Никто не делал эмулятор процессора на лиспе?
Аноним 09/11/15 Пнд 14:28:06 #270 №576770 
>>574845
Это интересный вопрос.
Во многих местах вэб сейчас используют как полноценную платформу для приложений. Зачастую эти приложения имеют дело с визуализацией и исселдовательским анализом данных. Это не ограничивается google docs и 1C, в каждой предметной области есть по нескольку компаний, работающий над доменно-специфическим решением.
Можно сколько угодно рассуждать на тему того, что вэб для этого не предназначен. Однако если взвесить все за и против: кроссплатформенность, отсутствие процесса установки и обновления, темпы и направление роста - вэб во многих случаях выигрывает у всех нативных платоформ.

Естественно, по-прежнему остаётся широкий класс веб-сайтов, которые являются документами/формочками. Таким сайтам даже React не нужен - vanilla js или какой-нибудь легковесный MVVM подойдёт (knockout, vuejs), можно даже с jquery поебаться, если толерантность уже выработалась.
Аноним 09/11/15 Пнд 16:31:25 #271 №576842 
"On lisp" переводили на русский когда-нибудь?
Аноним 09/11/15 Пнд 18:57:26 #272 №576944 
>>576842
На гитхабе лежит незаконченный перевод
Аноним 09/11/15 Пнд 19:04:52 #273 №576946 
>>576842
https://github.com/rigidus/onlisp
>>576712
>>576712
Вот, например, https://github.com/kingcons/cl-6502
Ещё ЕМНИП встречал эмуляторы avr, arm, vm из icfpc
Аноним 09/11/15 Пнд 19:18:04 #274 №576953 
Я могу как-нибудь посмотреть код функции, не залезая в исходники и дебагер? Вот например
> (defun hello-coca4 (abu) (format t abu))
Как-то получалось вызвав преднемаренно ошибку, увидеть код функи, но сейчас повторить не могу.
Аноним 09/11/15 Пнд 19:31:12 #275 №576965 
14470866726990.png
>>576953
http://stackoverflow.com/questions/5155160/print-lisp-function-readably
>(function-lambda-expression #'hello-coca4)
Аноним 09/11/15 Пнд 19:37:10 #276 №576972 
>>576965
Ух, спасибо. А с макросами?
>
> (function-lambda-expression #'defun)
>
> NIL
> T
> (:MACRO DEFUN)
Аноним 09/11/15 Пнд 19:45:25 #277 №576977 
>>576972
Я, наверное, туплю, просто еще не дошел до макросов.
Аноним 09/11/15 Пнд 19:46:43 #278 №576978 
>>576972
Используй навигацию по коду. (M-.)
Аноним 09/11/15 Пнд 19:49:57 #279 №576984 
Жесть, лисп крут)
Аноним 09/11/15 Пнд 20:15:11 #280 №577005 
14470893116630.png
>>576972
macroexpand-1
macroexpand
Аноним 09/11/15 Пнд 20:37:43 #281 №577039 
Внезапно открыл для себя. что макросы тоже компилятся в машинный код.
Аноним 09/11/15 Пнд 20:43:12 #282 №577045 
>>577039
На этапе компиляции макросов вообще уже нет.
Они все раскрываются на этапе macroexpand же.
Аноним 09/11/15 Пнд 20:51:46 #283 №577048 
>>565035 (OP)
Парни, на кложуре реально кодить за деньги? А то мамкин борщ чет надоел.
Аноним 09/11/15 Пнд 20:53:56 #284 №577053 
>>577048
Реально делать деньги на чем угодно. Нужно просто уметь это делать
Аноним 09/11/15 Пнд 20:55:36 #285 №577054 
>>577053
"Делать деньги" это что-то из 90-х?
Аноним 09/11/15 Пнд 20:56:43 #286 №577056 
>>577054
Это из любого времени. Но особенно из нынешнего.
Аноним 09/11/15 Пнд 20:57:28 #287 №577059 
>>577005
Тут макроэкспанд не нужен.

Можно получить объект-макрос из слота символа с помощью (macro-function 'defun), но в стандарте вроде бы никаких функций для работы с ним нет, но можно расковырять инспектором или воспользоваться специфичным для реализации средствами. Но только зачем?
Аноним 09/11/15 Пнд 20:58:19 #288 №577061 
>>577045
Макросы-то не святым духом раскрываются.
Аноним 09/11/15 Пнд 21:21:28 #289 №577070 
>>577056
Но я не хочу поднимать стартап. Я хочу сидеть как раб в офисе в 9 до 18 и вкалывать аки индус. При этом не писать всякие AbstractSingletonProxyFactoryNBean
Аноним 09/11/15 Пнд 21:27:50 #290 №577078 
>>577070
Ну и ищи соответствующие вакансии. То, что они есть, я тебе гарантирую. Но найдешь ли ты и возьмут ли туда тебя.
Аноним 09/11/15 Пнд 21:50:42 #291 №577098 
>>577078
Есть вакансии, в которых описывается опыт в кложурь на одном уровне со скала, джява. То есть примерно так "Опыт на одном из языков: Go/Python/Scala/Clojure/Java", хотя вакансия как-бы для джява-макаки.
Аноним 09/11/15 Пнд 21:53:11 #292 №577102 
>>577098
>>577098
>Есть вакансии, в которых описывается опыт в кложурь на одном уровне со скала, джява.
А ты что хотел? Кложура и есть джава, но с сахарком
Аноним 09/11/15 Пнд 22:12:37 #293 №577124 
>>577102
Ага, а cl — ассемблер с сахарком?
Аноним 09/11/15 Пнд 22:14:53 #294 №577127 
>>577124
CL, схема - самодостаточные языки, а кложа, если ты не знал, - хостед лангуаге.
Аноним 09/11/15 Пнд 22:16:12 #295 №577129 
>>577102
Я просто не понимат что они хотят от соискателя, вдруг там будут рассказывать сказки, а потом заставят писать на джяве. Это подстава подстав будет.
Аноним 09/11/15 Пнд 22:17:00 #296 №577130 
>>577129
Сходи да узнай. Они ж тебя сразу на цепь не посадят.
Аноним 09/11/15 Пнд 22:28:40 #297 №577144 
>>577127
Так и cl хостед, кложура компилируется в байткод, жабаскрипт или ллвм, cl — в ллвм, байткод или асм.
Аноним 09/11/15 Пнд 22:37:28 #298 №577156 
>>577144
Язык (это тот, что на бумаге), а не компилятор или реализация.
>Clojure is designed to be a hosted language, sharing the JVM type system, GC, threads etc.
Чувствуешь разницу?
Аноним 09/11/15 Пнд 22:38:32 #299 №577161 
>>577144
Алсо, кложура не компилится в жс, ты путаешь с кложуроскриптом.
Аноним 10/11/15 Втр 08:49:03 #300 №577425 
>>577161
Вообще-то, те же яйца, только в профиль
Аноним 10/11/15 Втр 09:21:39 #301 №577438 
>>577425
Языки, тем не менее, разные.
Аноним 10/11/15 Втр 15:01:38 #302 №577619 
>>577102
>>577102
> Кложура и есть джава, но с сахарком
В трэде много раз поднимался этот вопрос, хочется его обсудить поподробнее.

Язык программирования состоит из собственно языка, рантайма (либо компилятора,
либо и того и того вместе) и библиотек. Если два языка используют
один и тот же рантайм и библиотеки, можно ли считать что один является
"сахарком" для другого?

Языки вроде Питона и Руби имеют очень неэффективные рантаймы, и часто опираются
на Сишные библиотеки. Можно ли назвать их "сахарком" для Си?

Вряд ли, прежде всего потому, что сам процесс программирования на этих языках
разительно отличается от программирования на Си: отсутствие ручного управления памятью,
интерактивная разработка, ООП парадигам вместо процедурной. Кроме того, Питон и
Руби имеют реализации на других рантаймах, например на JVM.

Получается, что называть Руби и Питон "сахарком" для Си некорректно.

Теперь посмотрим на Clojure:
- Принципиально другой процесс программирования: отсутствие ручного управления
временем (прощайте ужасы concurrency), вместо объектов - данные и
функции, вместо фреймворков библиотеки.
- Работает на других рантаймах: JavaScript + куча маргинальных реализаций
(.NET, Python, Ruby)

По той же логике, Clojure "сахарком" назвать нельзя. Это самостоятельный язык.
Аноним 10/11/15 Втр 16:56:11 #303 №577676 
>>577619
Откуда ты тут такой умный, епта?
Впрочем доводы твои убедительны. На этом борще можно писать без монстроузорной ide?
Аноним 10/11/15 Втр 17:23:58 #304 №577699 
>>577676
Большинство на Емаксе пишут. Не знаю в какую категорию он попадает лично для тебя.
Сам пишу в LightTable, он вроде умирал и я даже хотел перекатиться на Емакс, но недавно LightTable начал вновь подавать признаки жизни.
Аноним 10/11/15 Втр 17:56:46 #305 №577712 
>>577699
Емакс наше все.
Что можешь сказать в общих словах про CL vs Clozure?
Аноним 10/11/15 Втр 18:18:01 #306 №577720 
>>577712
Ты имеешь в виду CL vs Clojure? (Clozure - это вроде как одна из реализаций CL)
Мало что могу сказать, т.к. с CL знаком только по книге Land Of Lisp, т.е. поверхностно.
С точки зрения языка, основные отличия помещаются на одну страничку: http://clojure.org/lisps
Главное отличие - нужно хотя-бы немного знать Джаву и уметь не охуевать от эксепшенов.
Аноним 10/11/15 Втр 18:47:56 #307 №577729 
>>577720
А если от джавы и всего что с ней связано хочется блевать?
С другой стороны ClojureScript может быть интересен. Кто щупал, что скажете?
Аноним 10/11/15 Втр 18:51:51 #308 №577731 
>>577729
>А если от джавы и всего что с ней связано хочется блевать?

Да немного там жабы.
В любом случае для веба на лиспе ничего лучше кложуры нет.
Аноним 10/11/15 Втр 20:57:00 #309 №577823 
>>577729
Узбагойся. От Явы там только библиотеки и очень полезные классы, что является жемчужиной Джава мира, но без блевотины.
Аноним 10/11/15 Втр 21:08:25 #310 №577829 
>>577823
Признайся, ты же ява-питек в прошлом?
Какие полезные библиотеки на яве? Все эти полезные библиотеки - переоверинженереная хуита типа гибернейтов, которую проще переписать, чем использовать.
Аноним 10/11/15 Втр 22:21:37 #311 №577882 
>>577619
Кое-кто путает язык и реализацию.
>Языки вроде Питона и Руби имеют очень неэффективные рантаймы
Насколько мне известно, это не так. У них неэффективные кодогенераторы, но с рантаймом всё в порядке.
>Можно ли назвать их "сахарком" для Си?
Нет. Вот если бы вместо объектов там были сишные указатели на структуры, а для обработки ошибок использовались errno и возврат нулевых указателей. Если бы все примитивы были заменены сишными: вместо строк char*, вместо чисел солянка из char, short, long, long long и т.д.
Вроде и язык продвинутый, а писать на таком одно мучение, т.к. изо всех щелей выглядывает сишка. И всё это ради сомнительной цели, ради прозрачного интеропа.
Аноним 11/11/15 Срд 00:10:27 #312 №577996 
>>577829
ImageJ видал?
Аноним 11/11/15 Срд 00:17:23 #313 №578005 
>>577829
Или скажем Prowser?
Аноним 11/11/15 Срд 00:29:56 #314 №578017 
>>578005
И чем оно лучше какой-нибудь drakma?
Аноним 11/11/15 Срд 00:32:30 #315 №578022 
>>577996
А nurpl видал? Давай теперь все языки поверх CL делать.
Аноним 11/11/15 Срд 00:51:14 #316 №578047 
14471922742330.jpg
>>578017
Мне объяснить чем браузер лучше HTTP-клиента?

>>578022
По запросу nurpl гуглится пикрелейтед. Если ты о лаке для ногтей то поверь мне, ImageJ лучше.

>Давай теперь все языки поверх CL делать.
Думаю не стоит.
Аноним 11/11/15 Срд 00:54:23 #317 №578052 
>>578047
>Мне объяснить чем браузер лучше HTTP-клиента?
Да, объясни.
>По запросу nurpl гуглится пикрелейтед.
Какой пользователь, такой и гугол.
http://www.nuprl.org/
>Думаю не стоит.
Я тоже так думаю. И не только про cl.
Аноним 11/11/15 Срд 01:39:41 #318 №578079 
>>578052
>Да, объясни.
Извини, я написал "Prowser", хотя следовало "HtmlUnit". Путаю их.
Prowser действительно сравним с drakma в плане возможностей. Но вот HtmlUnit строит DOM, иногда исполняет JS и может в Ajax.
Аноним 11/11/15 Срд 01:57:53 #319 №578088 
>>578079
И этим всерьёз кто-то пользуется? Разумнее, на мой взгляд, тестировать клиентский код им самим же, а не писать костыльный недобраузер.
Аноним 11/11/15 Срд 13:09:34 #320 №578323 
>>577882
> с рантаймом всё в порядке.
https://wiki.python.org/moin/GlobalInterpreterLock
Аноним 12/11/15 Чтв 13:37:05 #321 №579059 
[code lang=common-lisp](bump :thread (find 'lisp zk-threads))[/lang]
Аноним 12/11/15 Чтв 13:37:38 #322 №579060 
>>579059
Блядь, обосрался с разметкой.
Аноним 13/11/15 Птн 00:02:31 #323 №579467 
Что интересно, анон из лиспотреда является скобочным энтузиастом: готов помочь ньюфагам, обсудить преимущества и недостатки, написать (не)много лиспокода в конце-концов. Что приятно. И как же на его фоне в невыгодном свете выглядят сферические дрочащие на себя обезьяны из хачкель треда. Они способны лишь кричать во все горло о том, какой хацкель охуенный и вообще, все остальные не нужны, при этом не могут не то что ответить ньюфагу на вопрос иначе как "иди читай про 'неведомая-ебаная-хуйня, так еще и сами же не хотят писать на своем говне, объясняя это тем что язык то ленивый, и вообще вся эта ваша реальная хуйня не нужна. То ли дело подрочить на красивую теорию.
Аноним 13/11/15 Птн 00:38:02 #324 №579485 
>>579467
Тому шо если лисперы перестанут помогать, то они вымрут.
Аноним 13/11/15 Птн 00:49:44 #325 №579493 
>>579485
Ой ладно, та же кложура вроде как вполне популярна.
Аноним 13/11/15 Птн 01:49:57 #326 №579521 
>>579493
Это не лисп.
Аноним 13/11/15 Птн 03:12:47 #327 №579552 
>>579521
>кложура
>не лисп
Этот свитер порвался, вяжите новый.
Аноним 13/11/15 Птн 03:18:02 #328 №579556 
>>579552
Ты хотел сказать кардиган? Ммм, кложурист?
Аноним 13/11/15 Птн 10:02:12 #329 №579644 
>>579521
почему?
Аноним 13/11/15 Птн 12:10:13 #330 №579692 
>>579644
Потому что это джява. Нас, лисперов, таким трюком не провести!
Аноним 13/11/15 Птн 12:47:30 #331 №579715 
>>579521
Настоящиц Лисп это как истинный шотландец. Его просто не существует.
Даже Common Lisp - не лисп: http://steve-yegge.blogspot.ru/2006/04/lisp-is-not-acceptable-lisp.html
Аноним 13/11/15 Птн 13:30:48 #332 №579729 
>>579556
Нет, я же про тебя говорю, а не про себя.
Аноним 15/11/15 Вск 07:37:48 #333 №580775 
Есть что-нибудь вроде esrap, но с параметризируемыми правилами?
Аноним 15/11/15 Вск 09:05:08 #334 №580783 
>>580775
Внезапно, обнаружился форк
https://github.com/mabragor/esrap-liquid
Аноним 16/11/15 Пнд 12:05:37 #335 №581261 
Знающие аноны, расскажите такую вещь. На ЛОРе есть пользователь с ником mv, он прогает на лиспе в крут ой американской конторе. Я не понимаю что он именно делает, но там как-то связано с VHDL, на лиспе вроде DSL какой-то, который потом перегоняется на VHDL, но я хз. Может тут кто-нибудь рассказать примерно, чем он занимается и почему для этого используют именно лисп?
Аноним 16/11/15 Пнд 12:07:29 #336 №581262 
>>579493
Няша, не помню точно, но на ЛОРе как-то поясняли, почему кложура не лисп, у него нет каких-то важных свойств, только синтаксис схож. Ради интереса можно попробовать там поискать или даже тему создать.
Аноним 16/11/15 Пнд 14:25:31 #337 №581309 
>>581262
Было бы интересно почитать.
Аноним 16/11/15 Пнд 14:34:05 #338 №581318 
Раз тут обсуждают "что есть лисп", вброшу первый выпуск авторского веб-журнала про лисп:
https://leanpub.com/readevalprintlove001/read
Там как раз приведены разные точки зрения на этот вопрос, а также неплохой обзор существующих лиспов.
Аноним 16/11/15 Пнд 14:40:14 #339 №581321 
Посоны, а есть где-нибудь перевод той самой статьи МакКарти 1960го года на русский?
Не для себя спрашиваю.
Аноним 16/11/15 Пнд 16:22:18 #340 №581368 
>>581309
Нет, не интересно
Аноним 16/11/15 Пнд 17:07:03 #341 №581402 
>>581318
Следуя той классификации, можно отнести кложуру к категории exo-lisps.
>Exo-Lisps are the variants that exist to serve very pointed use cases. They can take the form of highly specialized libraries or embeddables
>Likewise, Exo-Lisps may be embedded within existing applications, like Emacs Lisp, or act as extension frameworks like Guile, Visual Lisp and Elk.
Аноним 16/11/15 Пнд 23:12:04 #342 №581616 
>>581368
Мне вот интересно. У человека наверняка очень необычная позиция, раз он делает такие выводы. Хочется с этой позицией ознакомится для расширения кругозора.
Аноним 16/11/15 Пнд 23:17:59 #343 №581619 
Ребят, помогите с задачей. Требуется написать функцию на scheme, которая считает количество различных элементов в списке. Собственно, итерацию для нахождения длины списка я написал, но как задать с учетом различности чисел — не дуплю.

(define (length lst)
(define (iter lst count)
(if (empty? lst) count
(iter (cdr lst) (+ 1 count))))
(iter lst 0))
Аноним 16/11/15 Пнд 23:38:08 #344 №581629 
>>581619
А чем примитивами можно пользоваться? Самое очевидное решение - положить в set, но наверное set-ами пользоваться нельзя. Следующее по очевидности - отсортировать и потом в один проход выкинуть дупликаты, можно пользоваться сортировкой?
Аноним 16/11/15 Пнд 23:40:38 #345 №581631 
За схему не скажу, но вот наговнокодил на CL мимо читаю 22 главу PCL
http://ideone.com/c5GOwx

(defun count-unique-values (list)
  (let ((map (make-hash-table)))
    (loop for x in list
       do (setf (gethash x map) 1))
    (hash-table-count map)))
Аноним 17/11/15 Втр 00:18:37 #346 №581664 
>>581629
Сетами можно. Я пытался сделать список из уже найденных и проверять на наличие в этом списке из уже найденных, но реализовать не получилось.
Аноним 17/11/15 Втр 00:28:59 #347 №581671 
>>581664
Вариант с сортировкой, но только для чисел. Впрочем передать функцию для сравнения не сложно, но это не очень решение в целом.
http://ideone.com/bWD1hP
(defun count-unique-values-2 (list)
  (let ((sorted (sort (copy-list list) #'>))
        (unique 0)
        last)
    (dolist (x sorted)
      (unless (eql last x)
        (incf unique)
        (setf last x)))
    unique))
Аноним 17/11/15 Втр 03:16:13 #348 №581722 
Посоветуйте хороший учебник с задачами/задачник по Common Lisp или Scheme.
Аноним 17/11/15 Втр 05:40:09 #349 №581746 
>>581619
Както-то так.
http://ideone.com/x4VMHx
Аноним 17/11/15 Втр 05:43:07 #350 №581747 
>>581722
Хороший учебник с практикой по CL - PCL. Дополнительные задачки можешь хоть из SICP'а брать.
Аноним 17/11/15 Втр 10:01:57 #351 №581797 
>>581746
Спасибо большое! :3
Аноним 18/11/15 Срд 12:43:40 #352 №582760 
Clojure или Racket для SICP'а?
Аноним 18/11/15 Срд 13:12:20 #353 №582774 
>>582760
mit-scheme
sageАноним 18/11/15 Срд 13:59:10 #354 №582795 
>>565035 (OP)
>Основные диалекты
>Tcl
Скобкодауны совсем поехали. Скрыл тред.
Аноним 18/11/15 Срд 14:15:37 #355 №582804 
>>582774
А что-нибудь более практичное?
Аноним 18/11/15 Срд 14:56:40 #356 №582826 
>>582804
А чем тебе mit-scheme не практичен то?
Открываешь emacs, M-x run-scheme и вперед.
Аноним 18/11/15 Срд 15:08:39 #357 №582841 
>>582826
Тем, что реальных задач на нем не сделаешь. А на Clojure и Racket - вполне, хотя на втором и меньше возможностей.
Аноним 18/11/15 Срд 15:09:16 #358 №582842 
>>582760
Racket, ставишь #lang R5RS
Clojure слишком сильно отличается.
Хотя есть проект переделки SICP под Clojure, но проект пока не завершён. Да и переделка довольно существенная.
Аноним 18/11/15 Срд 15:10:06 #359 №582845 
>>582841
Проходить SICP нужно для расширения сознания. А реальные задачи можно хоть на javascript потом решать, книга от этого менее полезной не станет.
Аноним 18/11/15 Срд 15:31:53 #360 №582869 
>>582841
Человек просил для SICP. mit-scheme это ровно то, что использовали в MIT для SICP. Куда уж точнее то?
Аноним 19/11/15 Чтв 10:30:41 #361 №583605 
>>582795
По-твоему, тикиль не лисп?
Аноним 19/11/15 Чтв 10:38:48 #362 №583612 
>>582804
>>582804
Common Lisp. Только при чем тут SICP?
Аноним 19/11/15 Чтв 15:18:24 #363 №583895 
(ЛИШП ШКОБКИ))) (МИР) ((ПРАВИТЬ))))
Простите, меня уже отпустило.
Аноним 19/11/15 Чтв 15:28:12 #364 №583904 
>>583895
Нельзя ж так резко бросать. Сам видишь, что бывает.
Аноним 19/11/15 Чтв 15:44:03 #365 №583920 
>>583904
Да это я только НАЧАЛ. Боюсь что же будет дальше.
Аноним 19/11/15 Чтв 15:47:10 #366 №583925 
>>583920
>>583920
>Боюсь что же будет дальше.
Десятое правило Гринспена своим кодом доказывать будешь.
Аноним 19/11/15 Чтв 16:21:31 #367 №583966 
Можно ли вызвать функцию из терминала безо всяких if?
Т.е. в предложенном варианте http://pastebin.com/hhnJQbsX после запуска я ввожу 'fun' в терминале и лисп выполняет функцию 'fun'?
Аноним 19/11/15 Чтв 16:23:21 #368 №583970 
>>583966
Ничего не понял. Ты хочешь без скобок вводить код?
Аноним 19/11/15 Чтв 16:24:43 #369 №583973 
>>583966
http://www.clisp.org/clash.html
Ну и очевидный eshell
Аноним 19/11/15 Чтв 16:32:46 #370 №583982 
>>583970
Смари, запускаю написанную на лиспе программку, в ней бесконечный цыкол (в примере его нет), который предлагает ввести название функции, которую надо выполнить. Собственно вводится "fun" в консоли и начинает выполняться функция "fun".
>>583973
Немного совсем не то если я не жопой прочитал
Аноним 19/11/15 Чтв 16:36:29 #371 №583990 
>>583982
Просто имя функции? Без аргументов? И в чем тогда проблема?
Аноним 19/11/15 Чтв 16:38:05 #372 №583993 
>>583990
Я не знаю как это сделать.
Аноним 19/11/15 Чтв 16:59:54 #373 №584018 
>>583993
http://ideone.com/9ElDin
Как-то так.
Аноним 19/11/15 Чтв 17:00:47 #374 №584019 
>>583993
Под команды отдельный пакет для того, чтобы нельзя было вызвать другие функции.
Аноним 19/11/15 Чтв 17:01:29 #375 №584021 
>>584018
Спасибо, просто я думал, что там это можно провернуть как-нибудь без лишних выебонов.
Аноним 19/11/15 Чтв 17:04:53 #376 №584023 
>>584021
Да там и так без выебонов. Прочитал строку, сделал символ, вызвал ассоциируемую с ним функцию.
Аноним 19/11/15 Чтв 17:07:20 #377 №584025 
>>584018
А нахуя ты каждое ключевое слово с двоеточием пишешь?
>>583993
Убер простой вариант: http://ideone.com/ggsdrH
Аноним 19/11/15 Чтв 17:13:18 #378 №584031 
>>584025
>А нахуя ты каждое ключевое слово с двоеточием пишешь?
Так читабельнее. keyword'ы обычно другим цветом подсвечиваются.
>>584025
>Убер простой вариант: http://ideone.com/ggsdrH
У тебя там ошибки: будет падать с ошибкой от EOF, и есть возможность вызвать те функции, которые не следует.
Аноним 19/11/15 Чтв 17:15:00 #379 №584035 
>>584025
И от несуществующей команды ещё ёбнется.
Аноним 19/11/15 Чтв 17:15:26 #380 №584036 
>>583993
Я чуть изменил http://ideone.com/9ElDin
Аноним 19/11/15 Чтв 17:16:05 #381 №584038 
>>584031
Ну дык это ж для демонстрации идеи. Как думаешь в чьем примере человеку который не осилил погуглить "common lisp call function by string" будет легче разобраться?
Аноним 19/11/15 Чтв 18:04:14 #382 №584077 
>>584036
Как разлупить теперь-то лол? 'bye' не работат.
Аноним 19/11/15 Чтв 18:07:56 #383 №584084 
>>584077
Там по EOF выход, но ты можешь запилить сравнение строки, как тут >>584025, или сделать функцию commands::bye с нелокальным (throw в функции и catch за циклом) переходом на конец цикла.
Ну или сигнальным протоколом воспользоваться и добавить ещё один случай в handler-case.
Аноним 19/11/15 Чтв 18:09:41 #384 №584089 
>>584084
Ох бля, и зачем я с этим связался
Аноним 19/11/15 Чтв 18:12:57 #385 №584099 
>>584089
Да это просто делается. Особенно первый вариант, где просто сравниваются строки.
С throw/catch даже в документации примеры есть http://www.lispworks.com/documentation/HyperSpec/Body/s_throw.htm
Аноним 19/11/15 Чтв 18:17:32 #386 №584102 
>>584099
Ладно, спасибо
Аноним 19/11/15 Чтв 18:26:29 #387 №584111 
>>584102

[code lang=common-lisp]
(defun main (&optional (package 'commands))
(loop :with package := (find-package package)
:for cmd := (read-line standard-input nil) :while cmd
:until (string= "bye" cmd)
:do (handler-case (funcall (intern (string-upcase cmd) package))
(undefined-function ()
(format t "~&Command `~a' doesn't exists~%" cmd)))))
[/code]
или так
[code lang=common-lisp]
(defun commands::bye ()
(throw bye nil))

(defun main (&optional (package 'commands))
(catch bye
(loop :with package := (find-package package)
:for cmd := (read-line standard-input nil) :while cmd
:do (handler-case (funcall (intern (string-upcase cmd) package))
(undefined-function ()
(format t "~&Command `~a' doesn't exists~%" cmd))))))
[/code]
Аноним 19/11/15 Чтв 18:27:31 #388 №584114 
>>584111
Я без сарказма говорил, и опять спасибо
Аноним 20/11/15 Птн 21:52:02 #389 №585086 
Задача: https://github.com/exercism/x-common/blob/master/robot-name.md
Имплеметация от местных барыг: https://github.com/exercism/xlisp/blob/master/robot-name/example.lisp

Надо сделать чтобы
1) Каждое выдаваемое имя было уникальным
2) При исчерпании доступных имен можно класть приложение в сегфолт
3) Имя должно выдаваться за постоянное время
Аноним 21/11/15 Суб 07:02:09 #390 №585343 
>>585086
gensym тебя не устраивает?
Аноним 21/11/15 Суб 10:47:19 #391 №585372 
>>585343
Один из товарищей сделал через gensym.
Вот что ему сказали на это:
>nteresting approach. I think that gensym will create invalid names very easily; and will do so in wonderfully implementation specific manners I'm sure. The spec just says 'decimal representation' of gensym-counter. So that might be any number of diigits.
Аноним 21/11/15 Суб 21:40:07 #392 №585841 
Собираюсь запилить компилятор кложуры в нативный код. Какие подводные жавы?
inb4 не нужно без JVM с сотней библиотек
Аноним 21/11/15 Суб 21:43:53 #393 №585849 
>>585841
Не хватит сил и мотивации. А ещё, получится никому не нужное говно.
Лучше помоги посонам с осовремениванием общелиспа.
Например, cl21 более-менее неплохо зделоли. Но его нужно допилить и заняться оптимизацией: понатыкать компилер макросов, deftransform'ов и прочего.
Аноним 21/11/15 Суб 22:03:43 #394 №585876 
>>585849
Просто мне не очень интересно пилить языковые фичи. У меня есть ряд идей по оптимизации такой низкоуровневой фигни как сборка мусора и транзакционная память, поэтому и хочется взять фронтенд от кложуры и приделать к нему бэкенд в LLVM или Си. Тем более что давно мечтаю о легковесной, компилируемой альтернативе питону на серверах.
Аноним 21/11/15 Суб 22:11:15 #395 №585880 
>>585876
Займись clasp'ом. Или https://github.com/robert-strandh/SICL/
У второго как раз нет допиленного кодогенератора.
Аноним 21/11/15 Суб 22:26:17 #396 №585893 
>>585876
Просто взять "фронтенд от кложуры" не получится, потому что это хостед язык и там изо всех щелей подводная жава.
>Тем более что давно мечтаю о легковесной, компилируемой альтернативе питону на серверах.
Общелисп жи. 30мб образа заменяет все 80мб питона.
Аноним 21/11/15 Суб 23:55:31 #397 №585950 
>>577619
ты уёбок. пиздец. ты сука значение слова рантайм узнай сначала. райнтайм!=виртуальная машина. в яве в рантайм включена виртуальная машина. пошёл нахуй, умник
Аноним 21/11/15 Суб 23:57:26 #398 №585951 
"языки вроде Питона и Руби имеют очень неэффективные рантаймы" ты дебил?

"Язык программирования состоит из собственно языка, рантайма (либо компилятора,
либо и того и того вместе) и библиотек."
ты пиздец мудак у меня бомбануло
Аноним 22/11/15 Вск 00:01:58 #399 №585952 
>>577619
"Кроме того, Питон и
Руби имеют реализации на других рантаймах, например на JVM."
Да что ж ты за сука такая! Какие бля нахуй реализации рантаймов? ран тайм это блядь среда выполнения. Даже у Objective C она есть. Она может быть с виртуальной машиной, а может и без. Хули ты тут ворвался такой. Кложура синтаксический сахар кстати, если интересно моё мнение.
Аноним 22/11/15 Вск 00:04:03 #400 №585955 
>>585951
>>585950
>>585952
Охлол, ты чего бугуртишь?
Аноним 22/11/15 Вск 00:18:33 #401 №585959 
Почему лисперы так любят сраться из-за терминологии, а не по существу?
Аноним 22/11/15 Вск 00:20:51 #402 №585960 
>>585959
Потому что залетные петушки могут развести срач только по терминологии.
Аноним 22/11/15 Вск 15:09:58 #403 №586226 
>>585841
Вначале приведу аргументы против того, чтобы это делать:
1. Если ты собираешься делать проект в целях самообразования, то лучше выбрать язык попроще и поменьше. Например, Scheme. Выбрав Clojure ты рискуешь потонуть в несущественных для твоего образования деталях.
2. Если ты собираешься делать это ради результата, то тут есть масса возражений:
a) Оно уже есть: https://github.com/schani/clojurec
b) Сама идея Clojure подразумевает что язык делит с платформой GC и базовые типы (строки, числа и т.д.). В нативном коде ни общепринятого GC, ни общепринятой реализации иммутабельных строк нет. Именно поэтому Timothy Baldrige (один из разработчиков Clojure, автор core.async) вместо диалкета Clojure под нативный код сделал новый язык, просто позаимствов из Clojure основные идеи: https://github.com/pixie-lang/pixie
c) В качестве лекговесной компилируемой альтернативы питону на серверах подойдут SBCL, Chicken Scheme, а также многие другие реализации CL и Scheme. А ещё, лично мне нравится OCaml.

Если ты всё-таки возьмёшься за этот проект, то план примерно следующий:
1. Найти GC.
2. Реализовать в нативной коде иммутабельные структуры данных на основе Hash-Array Mapped Tries.
3. Реализовать Transactional Memory на основе MVCC (Хикки говорил, что любая другая не подойдёт), а также другие concurrency примитивы: agent, atom, var (это уже гораздо проще).
4. Написать компилятор, за основу лучше взять компилятор ClojureScript, т.к. он сам написан на Clojure. Определиться, на какой платформе будешь бутстрапится: на JVM или на JS (тут я даже не знаю что посоветовать).
5. Реализуешь кодогенерацию для десятка (примерно) базовых специальных форм. После этого пытаешься скомпилировать core.clj, в котором определён весь остальной язык.

Что делать дальше я слабо представляю, там наверняка ещё есть куча нюансов. Лучше попробовать написать проект или портировать библиотеку, и смотреть какие проблемы вылезут.
Аноним 22/11/15 Вск 15:17:03 #404 №586232 
>>586226
>Chicken Scheme
Петушиная схема сдохла же. Из схем рэкет и гуиле более-менее живые. У второго вообще другое предназначение, а первый - жуткий тормоз.
Аноним 22/11/15 Вск 16:32:49 #405 №586302 
>>586226
>А ещё, лично мне нравится OCaml.
Ocaml - как общелисп. Вроде язык неплохой, но немного неоднородный и стандартная библиотека у него - говно.
Аноним 22/11/15 Вск 17:09:45 #406 №586341 
>>586302
В последние годы ситуация исправилась:
- Вышла хорошая замена стандартной библиотеке: http://janestreet.github.io/
- Вышла хорошая книга: https://realworldocaml.org/
- OPAM стал гораздо лучше
Аноним 22/11/15 Вск 17:12:14 #407 №586343 
>>586226
Не для самообразования, скорее просто for fun (а если получится еще и for profit - вообще замечательно).
Репозиторий clojurec давно не обновлялся, да и там boehm GC, который говно. Я собираюсь использовать reference counting да, знаю что по производительности это будет хуже GC для удобной интеграции с нативным (сишным) кодом.
OCaml мне тоже нравится, но у него однопоточный GC. И ебанутая лицензия на компилятор, которая отбивает все желание допиливать его рантайм.
Аноним 22/11/15 Вск 17:14:45 #408 №586349 
>>586341
Про janestreet'ы, batteries'ы, opam'ы и прочие я и так знаю.
Мне не понятно, почему сами разработчики её не допилят.
Аноним 22/11/15 Вск 17:16:29 #409 №586350 
>>586341
Существуют аж ДЖВЕ замены стандартной библиотеке. Что создает определенные проблемы если нужно, например, интегрировать две разные библиотеки, одна из которых использует lwt а другая async.
Если хочется статической типизации, имеет смысл таки осилить haskell.
Аноним 22/11/15 Вск 17:17:14 #410 №586352 
>>586349
Потому что лягушатники из inria рассматривают OСaml лишь как бэкенд для Coq`а.
Аноним 22/11/15 Вск 17:34:44 #411 №586367 
>>586350
Хаскель менее практичный.
Аноним 22/11/15 Вск 18:01:19 #412 №586390 
>>586350
Ленивость по умолчанию не практична.
Аноним 22/11/15 Вск 18:02:32 #413 №586393 
>>586390
Как и пустая переусложненность некоторых библиотек.
Аноним 22/11/15 Вск 20:44:06 #414 №586557 
>>586367
>>586390
>>586393
> лиспотред
> практичность
Аноним 22/11/15 Вск 21:23:45 #415 №586586 
>>586557
Общелисп достаточно практичен.
Аноним 22/11/15 Вск 21:25:31 #416 №586589 
>>586557
Ну и кложескрипт ещё.
Аноним 22/11/15 Вск 23:07:23 #417 №586677 
>>586589
Кложескрипт гораздо менее практичен чем jvm-ная Кложа, по крайней мере в данный момент.
Аноним 23/11/15 Пнд 00:13:25 #418 №586727 
>>586677
Схуябы? Вся хипстота сейчас пилит свои *er'ы на кложескрипте. А кложуру вообще мало кто использует.
Аноним 25/11/15 Срд 11:12:06 #419 №588578 
Игоры на чем пилить?
Аноним 25/11/15 Срд 12:08:58 #420 №588618 
Erlang треда не нашёл, спрошу тут.
Есть список вида [1,4,3,6,1,2,2,3,5] и т.п., нужно вернуть список туплов вида [{1,2},{2,2},{3,3},{4,1},{5,1},{6,1}], то бишь количество повторений каждого числа.
Как это сделать на рекурсии?
Аноним 25/11/15 Срд 12:36:09 #421 №588649 
>>588618
псевдокод

yoba(list) = yobaAux(list, Map.new)

yobaAux x::xs map = {
if map.has(x)
then map[x] = map[x] + 1
else map[x] = 1
return yobaAux(xs, map)
}
Аноним 25/11/15 Срд 12:36:36 #422 №588650 
>>588649
yobaAux empty_list map = map
Аноним 26/11/15 Чтв 11:10:54 #423 №589520 
>>588578
Смотри в сторону CEPL и varjo
Аноним 26/11/15 Чтв 14:01:03 #424 №589608 
>>589520
уже начал в play-clj
Аноним 26/11/15 Чтв 15:13:42 #425 №589657 
>>589520
Посмотрел видео: https://youtu.be/a2tTpjGOhjw?list=PL2VAYZE_4wRKKr5pJzfYD1w4tKCXARs5y
Кончил струей. Дообмазываюсь PCL, доделаю exercism и попробую вкатится в эту штуку.
Аноним 26/11/15 Чтв 17:11:42 #426 №589767 
Кто читал land-of-lisp поделитесь впечатлениями.
Аноним 26/11/15 Чтв 17:16:11 #427 №589769 
>>588578
Если интересует Unity, то можно на Clojure:
https://github.com/arcadia-unity/Arcadia
Правда проект в последнее время слегка замер.
Аноним 26/11/15 Чтв 17:16:30 #428 №589770 
>>589767
Хорошая книга, рекомендую.
Аноним 26/11/15 Чтв 17:18:36 #429 №589771 
>>589770
Говорят что для тех кто поопытней PCL лучше.
Я PCL почти дочитал, хорошая книжка. Стоит ли после неё читать?
Аноним 26/11/15 Чтв 18:10:22 #430 №589801 
>>589771
Не читал PCL, поэтому сравнивать не могу.

Land Of Lisp читается очень легко, потому что написана с шутками и картинками, задания по программированию все интерактивные и описывают разработку игр. Мне кажется, это актуально для любого уровня.
Аноним 26/11/15 Чтв 18:13:00 #431 №589802 
>>589801
Хорошо, почитаемс. Где спиратить можно?
Аноним 26/11/15 Чтв 18:33:58 #432 №589816 
>>589802
Да где угодно, она даже в гугле находится. Например:
ftp://ftp.micronet-rostov.ru/linux-support/books/programming/Lisp%20-%20Scheme/%5BNo%20Strach%5D%20-%20Learn%20to%20Program%20in%20Lisp,%20One%20Game%20at%20a%20Time%20-%20%5BBarski%5D.pdf
Аноним 26/11/15 Чтв 18:39:59 #433 №589820 
>>589816
Пасибо.
Аноним 26/11/15 Чтв 21:43:16 #434 №590049 
>>589608
Игори на яве? Совсем ебанулся?
Аноним 26/11/15 Чтв 22:43:18 #435 №590110 
>>590049
да
у нее сборщик мусора лучше, чем в sbcl, азаза
Аноним 26/11/15 Чтв 22:53:31 #436 №590128 
>>590110
Не лучше. А вот в allegrocl лучше, чем в sbcl и jvm.
Аноним 26/11/15 Чтв 23:59:06 #437 №590169 
>>590110
sbcl хотя бы не тормозит.
Аноним 27/11/15 Птн 12:21:44 #438 №590405 
>>590128
По докам их GC выглядит как калька с джавовского.
http://franz.com/support/documentation/10.0/doc/gc.htm
Аноним 27/11/15 Птн 12:25:37 #439 №590408 
>>590169
Когда это он не тормозит? Тормозит, когда мусор собирает.
Аноним 27/11/15 Птн 14:37:23 #440 №590458 
Котаны, для CL есть нормальные батарейки? Шоб вот прям вообще все было.
Аноним 27/11/15 Птн 14:58:51 #441 №590469 
>>590458
http://franz.com/products/allegrocl/ называеца
Аноним 27/11/15 Птн 14:58:55 #442 №590470 
>>590458
В cl21 пытались реструктуризировать стандартную библиотеку, попутно собрав все батарейки в одном месте. Но этот проект пока только как прототип и для практического использования не слишком пригоден.

Ты лучше скажи, что именно тебе нужно, а мы насоветуем.
Аноним 27/11/15 Птн 15:00:05 #443 №590471 
>>590469
А что сразу не лиспворкс?
Аноним 27/11/15 Птн 15:01:42 #444 №590472 
>>590470
Мне надо сделать генератор рейтингов.
Есть postgres. Надо сделать выборку, и выплюнуть её в html. Алсо как лучше всего это дело прикрутить к nginx'у?
Аноним 27/11/15 Птн 15:02:52 #445 №590474 
>>590469
Что это за хуйня и как её пощупать?
Аноним 27/11/15 Птн 15:16:22 #446 №590479 
>>590472
Для работы с бд - postmodern либо cl-dbi и опционально sxql
>Алсо как лучше всего это дело прикрутить к nginx'у?
Всякие cgi-либы давно протухли. Лучше заюзай clack или какой-либо фреймворк поверх него (легковесный lucerne, например)
Аноним 27/11/15 Птн 15:19:06 #447 №590481 
>>590472
>и выплюнуть её в html
Есть edsl для генерации html - cl-who, есть google closure templates - cl-closure-templates.
Выбирай сам в зависимости от сложности страницы и личных предпочтений.
Аноним 27/11/15 Птн 15:22:53 #448 №590484 
>>590481
Или http://quickdocs.org/djula/ если больше нравятся джанговские шаблоны. Тысячи их.
Аноним 27/11/15 Птн 15:25:19 #449 №590485 
>>590472
Ну и http://quickdocs.org/alexandria/ - де-факто стандартный набор всяких утилит.
Аноним 27/11/15 Птн 15:33:26 #450 №590490 
>>590474
проприетарный лисп
Аноним 27/11/15 Птн 15:36:00 #451 №590494 
>>590479
О, clack, оказывается, умеет и через fastcgi (через тухловатный cl-fastcgi) работать.
Аноним 27/11/15 Птн 15:48:16 #452 №590505 
>>590484
Хочу что-то типа такого:
(html
 (body
  (table
   (th (td "#") (td "name"))
   (loop for name in names
         for i = 0 then (1+ 1)
         do (tr (td i) (td name))))))

Есть подобное?
Аноним 27/11/15 Птн 15:49:08 #453 №590506 
>>590505
cl-who же
Аноним 27/11/15 Птн 15:59:55 #454 №590507 
14486291955490.gif
Господа, начал учить лепса ANSI CL Пол Грэм и серьёзно озадачился, откуда взять словарь, шоб быстро посмотрел, за что отвечает эта блядская and, or или всякие предикаты типа atom.
Аноним 27/11/15 Птн 16:02:15 #455 №590508 
>>590506
Ну вроде ничего. Попробуем-с.
Аноним 27/11/15 Птн 16:04:46 #456 №590509 
>>590507
CLHS. Ссылка в шапке.
Аноним 27/11/15 Птн 16:05:19 #457 №590511 
>>590508
Было ещё несколько подобных библиотек, но их названия сходу не вспомню.
Аноним 27/11/15 Птн 16:06:01 #458 №590512 
>>590509
Блять, неужели нет нормальной версии? Об это говно можно глаза сломать.
Аноним 27/11/15 Птн 16:07:08 #459 №590513 
>>590512
Может и есть. А вообще, ты можешь запилить свои стили и выложить на всеобщее обозрение.
Аноним 27/11/15 Птн 16:09:42 #460 №590515 
>>590512
CLHSом, кстати, удобно пользоваться из емакса с помощью {slime-,}hyperspec-lookup
Аноним 27/11/15 Птн 16:12:32 #461 №590517 
14486299528880.gif
>>590509
Там ведь даже поиска нет или я слепой?
Аноним 27/11/15 Птн 16:14:51 #462 №590521 
>>590517
Вроде не было. Это ж просто набор статических html.
Есть только это http://www.lispworks.com/documentation/HyperSpec/Front/X_Symbol.htm
Я ж говорю, из емакса им удобнее пользоваться.
Аноним 27/11/15 Птн 16:16:52 #463 №590523 
14486302125120.gif
>>590521
>из емакса
Как запилить?
Аноним 27/11/15 Птн 16:20:38 #464 №590524 
>>590523
А там ничего запиливать не надо, оно частью слайма является.
Аноним 27/11/15 Птн 16:21:03 #465 №590525 
>>590523
Вспомнил, кстати, http://xach.com/lisp/clhs-lookup/
Аноним 27/11/15 Птн 16:22:19 #466 №590526 
>>590515
>>590521
Он по дефолту в браузере открывает. Буэ.
Аноним 27/11/15 Птн 16:24:36 #467 №590529 
14486306767740.gif
>>590525
О, спасибо.
Аноним 27/11/15 Птн 16:27:08 #468 №590532 
>>590526
customize-group browre-url -> Browse Url Browser Function -> eww или emacs w3
Аноним 27/11/15 Птн 16:33:07 #469 №590535 
>>590532
Не хочу глобальную менять. Лучше helm-dash прикручу.
Аноним 27/11/15 Птн 16:34:27 #470 №590536 
>>590535
А он так же браузер дергает. Ну или zeal, который у меня, например, не собрался.
Аноним 27/11/15 Птн 17:34:42 #471 №590571 
>>590515
С-с С-d h
наизусть помню эти аккорды
Аноним 27/11/15 Птн 17:35:16 #472 №590573 
>>590571
у меня локальная копия еще гиперспеки, вообще норм
Аноним 29/11/15 Вск 01:52:09 #473 №591508 
Лиспаны, что думаете по поводу сего https://ceramic.github.io/ ?
Аноним 29/11/15 Вск 03:58:06 #474 №591547 
>>591508
круто, чо
Аноним 30/11/15 Пнд 11:35:47 #475 №592359 
>>591508
Пролистал главную. Это хуйня перед веб страничку и коипилит её в экзешник? Но нахуя?
Аноним 30/11/15 Пнд 13:59:06 #476 №592410 
>>592359
Редактор atom знаешь? Вот он использует электрон, обвязкой вокруг которого ceramic и является.
Нахуя веб вытесняет десктопные тулкиты? Много причин.
Аноним 30/11/15 Пнд 15:57:32 #477 №592523 
>>592410
Ну так нахуя нужен сам керамик? Если основной код приложения все равно на js.
Аноним 30/11/15 Пнд 16:03:49 #478 №592531 
>>592523
На js только гуй. Вся логика приложения на лиспе.
Аноним 30/11/15 Пнд 17:37:44 #479 №592614 
>>592531
Ну охуеть не встать. В гуишном приложении самый геморой это сам интерфейс. В ощем я так и не понял на кой хер нужен этот керамик.
Аноним 30/11/15 Пнд 17:52:56 #480 №592629 
>>592614
Я пока и сам не понял, нужен ли он.
С одной стороны куча нативных тулкитов, которые либо не кроссплатформенны, либо не могут в нативный вид, либо просто крестоговно без аби и с собственным препроцессором. С другой стороны эта вебпараша. Криво тоже, тормозно, не может в интеграцию с DE, но зато кроссплатформенно, выглядит почти везде одинаково и более удобно для разработки и отладки (особенно, если использовать какой-нибудь clojurescript вместо js-говна).
Аноним 30/11/15 Пнд 18:14:45 #481 №592656 
>>592629
Ты пользовался кложурскриптом? Если да то как тебе?
Аноним 30/11/15 Пнд 18:22:34 #482 №592663 
>>592656
Нет, не пользовался. Только видел, как другие им пользуются. Результат выглядел довольно неплохо.
Аноним 30/11/15 Пнд 18:28:29 #483 №592670 
Товарищи, вопрос по реплу emacs'а. Как остановить его работу при зацыкливаниях? Приходиться постоянно его перевключать.
Аноним 30/11/15 Пнд 18:30:14 #484 №592671 
>>592670
C-c C-b же
Аноним 30/11/15 Пнд 18:31:39 #485 №592675 
>>592670
>>592671
А в slime-repl - C-c C-c

В общем, slime-interupt нужно вызвать.
Аноним 30/11/15 Пнд 18:56:09 #486 №592694 
Недавно вкатился в Lisp до этого в Си пытался . Так вот, что делать, если у меня истерический смех при виде скобочек?))
Аноним 30/11/15 Пнд 18:59:04 #487 №592698 
>>592670
Ну и еще дефолтный C-g 9000 раз подряд помогает.
Аноним 30/11/15 Пнд 19:07:50 #488 №592709 
>>592694
Попробуй пропить курс седативных.
А вообще, тебе ещё повезло, что ты js не видел. Его })();})();}); надолго бы загнали тебя в депрессию.
Аноним 30/11/15 Пнд 19:38:23 #489 №592735 
>>592709
Как и лисповы скобочки, со временем приедается и видишь неправильные конфигурации. Да и в жсе множество комбинаций будут ошибкой и подсвечены тем же емаксом.
А вот в лиспе можно проебать скобок тут и там, а код будет валидным. Сиди охуевай ищи почему не работает. Впрочем, опять-таки, это все дело привычки. Сишники так вообще первое время постоянно = и == путают.
Аноним 30/11/15 Пнд 19:53:40 #490 №592747 
>>592735
>А вот в лиспе можно проебать скобок тут и там, а код будет валидным.
Для этого надо очень хитро объебаться со скобками. В жс это сделать уж намного проще.
Аноним 30/11/15 Пнд 20:04:42 #491 №592753 
>>592747
Я пока переписываю примеры из PCL и свой говнокод пилю уже не раз объебывался. Из-за того что этих скобо миллиард проебать в нужном месте легко. А чтобы не проебывать нужно чутье, которое вырабатывается только с опытом. Главное отличие от жс, в жс 90% будет синтаксическая ошибка, тогда как в лиспе будет либо рантайм ошибка, либо вообще просто логика по пизде пойдет.
Аноним 30/11/15 Пнд 20:11:35 #492 №592757 
>>592753
Ты код в блокноте писал что ли? smartparens из емакса сам заботится о скобках. А если уж ты и умудрился проебать, то при компиляции функции подсветится ошибка или предупреждение.
Аноним 30/11/15 Пнд 20:16:05 #493 №592759 
>>592757
В том то и дело, что я умудрился наступить на грабли когда емакс все расставил как надо, но при этом код оказался неправильным.
Найди сходу ошибку:
(defun score (features)
  (let ((spam-probs ()) (ham-probs ()) (number-of-probs 0))
    (dolist (feature features)
      (unless (untrained-p feature)
        (let ((spam-prob (float (bayesian-spam-probability feature) 0.0d0))
              (push spam-prob spam-probs)
              (push (- 1.0d0 spam-prob) ham-probs)
              (incf number-of-probs))))
      (let ((h (- 1 (fisher spam-probs number-of-probs)))
            (s (- 1 (fisher ham-probs number-of-probs))))
        (/ (+ (- 1 h) s) 2.0d0)))))
Аноним 30/11/15 Пнд 20:20:11 #494 №592768 
14489040118960.png
>>592759
Емакс сразу ошибку подсветил. Да и выравнивание показало сделало ошибку очевидным.
Аноним 30/11/15 Пнд 20:22:01 #495 №592771 
>>592768
Смысл в том что у меня баг был такого же типа, но без синтаксических ошибок, код просто возвращал неверные данные.
Аноним 30/11/15 Пнд 20:23:21 #496 №592772 
>>592768
Алсо у меня от твоего скриншота глаза вытекли. Пиздец радужный.
Аноним 30/11/15 Пнд 20:30:05 #497 №592782 
14489046050930.png
>>592771
Выравниванием пользуйся. В си-подобных без выравнивания тоже не разберешься.
>Смысл в том что у меня баг был такого же типа, но без синтаксических ошибок, код просто возвращал неверные данные.
Практически невозможно обосраться со скобками так, чтобы компилятор молча принял. Минимум будет предупреждение.
Аноним 30/11/15 Пнд 20:39:18 #498 №592788 
>>592759
Кстати, почему ты не пользуешься loop? Все эти пуши, инкфы так и просят заменить их на :collect, :count
Аноним 30/11/15 Пнд 20:39:22 #499 №592789 
>>592671
Спасибо
Аноним 30/11/15 Пнд 20:46:23 #500 №592798 
>>592797 (OP)
>>592797 (OP)
>>592797 (OP)
>>592797 (OP)

Перекат
Аноним 30/11/15 Пнд 20:56:12 #501 №592806 
>>592788
Это код из PCL.
Аноним 30/11/15 Пнд 20:58:14 #502 №592809 
>>565035 (OP)
Я снова к вам. Тут две очень простенькие задачки на Scheme пытаюсь решить, первая — сложить две матрицы, вторая — проверить, что все числа в матрице неотрицательны. Собственно, не могу понять, почему рэкет бугуртит.

(define (sum-matr (Mlst1 Mlst2)
(map (lambda (x y) (+ x y)) Mlst1 Mlst2)))

(define (matr Mlst)
(andmap (lambda (Mlst) (or (positive? Mlst) (zero? Mlst))) #t #f))
Аноним 30/11/15 Пнд 21:10:39 #503 №592825 
>>592809
У тебя матрицы в виде одномерного списка что ли?
[code lang=scheme]
(define (sum-matrix a b)
(map + a b))

(define (matr Mlst)
(andmap (lambda (Mlst)
(or (positive? Mlst) (zero? Mlst)))
Mlst))
[/code]
Аноним 30/11/15 Пнд 21:29:55 #504 №592837 
>>592825
> (define (sum-matrix a b)
> (map + a b))

Только что написал не для одномерного списка, но тоже чет не работает.
(define (sum-matrix X Y)
(map (lambda (rowX rowY) (map (lambda (x y) (+ x y)) rowX rowY)) X Y))
Аноним 30/11/15 Пнд 21:34:12 #505 №592839 
>>592837
Или работает... Я не совсем понимаю, как в окне интерпретатора их вводить, лол. Явно не в виде простого списка.
Аноним 30/11/15 Пнд 22:04:47 #506 №592865 
>>592837
>(lambda (x y) (+ x y))
Обычный + в лямбду заворачивать необязательно.
>>592839
'((1 2 3)
  (2 3 4))
Аноним 02/12/15 Срд 11:27:03 #507 №593850 
Как в комон лиспе начать считывать файл с определённой строки, а не с самого начала файла?
Аноним 02/12/15 Срд 17:16:40 #508 №594110 
>>593850
Так же, как и в любом другом языке, - считать N первых строк.
comments powered by Disqus

Отзывы и предложения