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

Лиспотред №4

 Аноним 29/12/15 Втр 19:21:14 #1 №615102 
14514060742200.png
Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

Основные диалекты
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 - скриптовый язык с немного наркоманскимстранным синтаксисом. Из коробки множество батареек на любой случай жизни, среди которых неповторимый Tk. Язык очень удобен для написания скриптиков, особенно когда к ним требуется приделать графический интерфейс.
Rebol
PicoLisp - Наркоманская хуита
— newLISP - Скриптовый лисп с компактным и быстрым интерпретатором и батарейками на любой случай жизни. В первую очередь предназначен для скриптоты, которую обычно пишут на perl, python, tcl, sh: обработка текстов, работа с сетью, базами данных, взаимодействие с ОС, построение графиков и т.п.
Список возможностей: http://www.newlisp.org/index.cgi?Features
Отличия от других диалектов: http://www.newlisp.org/index.cgi?page=Differences_to_Other_LISPs

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

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

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

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


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

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

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

Scheme
+ Emacs + geiser
+ drRacket

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

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


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

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


Предыдущие треды: http://arhivach.org/?tags=3055,113
Текущая версия шапки: http://pastebin.com/NQcjG6Kp
Аноним 29/12/15 Втр 22:52:01 #2 №615238 
Добавлю еще: http://exercism.io/languages/elisp
Аноним 29/12/15 Втр 23:05:44 #3 №615245 
>>615238
Это, кстати один из самых популярных диалектов лиспа.
Аноним 29/12/15 Втр 23:12:20 #4 №615250 
>>615245
Откуда статистика такая?
Аноним 29/12/15 Втр 23:30:11 #5 №615264 
У кого-нибудь есть предложения по реструктуризации и повышению читабельности шапки или замечания по её содержимому?
Аноним 29/12/15 Втр 23:46:46 #6 №615275 
>>615250
http://githut.info/
Аноним 29/12/15 Втр 23:47:07 #7 №615276 
>>615264
У меня. Это говно читать вообще невозможно.
Предлагаю все нахуй выкинуть и сделать заново.
Аноним 29/12/15 Втр 23:51:25 #8 №615280 
>>615276
Начать шапку надо с того нахуя мимокрокодилу вообще может понадобится лисп.
Затем краткий обзор какие лиспы есть, и какой выбрать мимокрокодилу.
Аноним 29/12/15 Втр 23:55:07 #9 №615282 
>>615280
А вообще предлагаю начать форсить Единственный Верный Лисп: Общелисп.
Аноним 30/12/15 Срд 00:04:46 #10 №615293 
>>615280
>Затем краткий обзор какие лиспы есть, и какой выбрать мимокрокодилу.
А потом какие реализации, какие книги, какие IDE, какие библиотеки.
Аноним 30/12/15 Срд 00:08:12 #11 №615302 
>>615276
>Это говно читать вообще невозможно.
А что именно не так?
>Предлагаю все нахуй выкинуть и сделать заново.
Сделай так, как тебе кажется лучше.
А лучше, предлагай варианты исправления текущего.
Аноним 30/12/15 Срд 00:20:39 #12 №615316 
Аноны, вам тоже SICP сначала трудно давался, или я такой ТУПОЙ? Не могу до конца въехать в тему "вычисление квадратного корня по методу Ньютона", точнее я въехал, но вот с упражнениями большая проблема, пришлось гуглить ответы и понимать.
Аноним 30/12/15 Срд 00:43:07 #13 №615341 
>>615316
Это нормально. Что не понятно пропускай, а потом можешь вернуться.
Помню, как я изучал программирование по единственной найденной тогда книге - совковый учебник по сишке. Зачем нужны функции и почему они должны возвращать значение понял только при повторном перечитывании.
Аноним 30/12/15 Срд 00:48:49 #14 №615345 
>>615316
SICP простой. По крайней мере первая половина.
Аноним 30/12/15 Срд 07:08:53 #15 №615458 
>>615316
Если не сталкивался с численными методами, то это нормально, дальше там ближе к обычному программированию а не к математике
Еще можешь посмотреть htdp.org, который кстати неплохо бы добавить в шапку
Аноним 30/12/15 Срд 09:58:07 #16 №615495 
Это снова анон с SICP. Вот задача из книги : http://puu.sh/mdndO/4b9e8f8d1c.png
Моё решение : http://puu.sh/mdnaS/e2527ee56c.png
Почему не работает, все же хорошо написано?
Аноним 30/12/15 Срд 10:50:03 #17 №615518 
>>615495
Как ты в этом пиздеце работаешь? Код же хуй прочтешь.
>Почему не работает
У тебя cube-iter требует два аргумента, но внутри функции ты вызываешь её с одним.
Аноним 30/12/15 Срд 11:11:45 #18 №615529 
>>615458
Нуднятина адская. Прочил 5 или 6 глав, дальше не смог.
Аноним 30/12/15 Срд 12:22:06 #19 №615567 
>>615518
Точно, спасибо, а какую среду тогда посоветуешь, я кроме гамбита ничего и не юзал.
Аноним 30/12/15 Срд 12:26:42 #20 №615571 
>>615567
E. M. A.C. S.
Аноним 30/12/15 Срд 12:41:29 #21 №615585 
>>615567
drracket или, если с емаксом в ладах, то емакс
Аноним 30/12/15 Срд 16:25:58 #22 №615671 
Гайз, гайз! А что насчет превратить CL из lisp-2 в lisp-1?
https://ideone.com/tyhO4I
Аноним 30/12/15 Срд 16:34:54 #23 №615676 
>>615671
Думаешь нужно?
Аноним 30/12/15 Срд 16:37:59 #24 №615677 
>>615671
А как насчет [code lang=scheme]((lambda (x) (x x)) (lambda (x) (x x)))[/code]?
Аноним 30/12/15 Срд 16:59:30 #25 №615684 
>>615677
Забавно. (setf (cdr x) x) тоже ничего.
>>615676
Если серьезно, то ни одного аргумента в пользу отдельного неймспейса для функций я для себя придумать так и не смог.
Аноним 30/12/15 Срд 17:03:44 #26 №615685 
>>615684
>Забавно.
Я про то, что лямбду по значению без funcall не вызовешь.
Аноним 30/12/15 Срд 17:11:41 #27 №615691 
>>615684
Ну единственный аргумент — переменные с именем совпадающим с именем функции. Это часто случается, но не могу сказать что это достаточная причина для разделения пространств имен.
Аноним 30/12/15 Срд 17:14:22 #28 №615694 
>>615691
Ты лучше скажи: а есть ли причины объединения их?
По-моему, идеи Lisp-N правильные: под разные типы данных - разные слоты у символа.
Аноним 30/12/15 Срд 17:15:23 #29 №615695 
>>615694
В прошлом треде был линк на обстоятельный разбор этого спора.
http://www.nhplace.com/kent/Papers/Technical-Issues.html
Прочитай, потом поговорим.
Аноним 30/12/15 Срд 17:20:30 #30 №615699 
>>615695
И что? Я видел это. Не считаю, что у пакетов, функций, переменных, неба и даже Аллаха должно быть одно пространство имен. Раздельное выглядит куда логичнее.
Аноним 30/12/15 Срд 17:25:36 #31 №615702 
>>615699
Если писать функциональщину с колбеками, то обмазываться funcall не очень приятно
Аноним 30/12/15 Срд 17:35:59 #32 №615707 
>>615702
Ну, без лени, паттерн-матчинга и вывода типов тоже особо не попишешь.
Аноним 30/12/15 Срд 17:36:31 #33 №615708 
>>615707
И без ADT
Аноним 30/12/15 Срд 17:50:36 #34 №615713 
>>615702
Кстати, если уж пишешь на cl в функциональном стиле, то больше всего неудобств доставляет отсутствие сечений, композиции и уже упомянутого сопоставления с образцом, а не функалы.
Аноним 30/12/15 Срд 18:14:26 #35 №615723 
>>615713
Что за сечения?
Аноним 30/12/15 Срд 18:36:04 #36 №615729 
>>615723
Частично примененные функции. Кажется, именно так они и назывались.
Аноним 30/12/15 Срд 18:42:28 #37 №615734 
>>615729
Каррирование то? Не слышал термина сечение.
Аноним 30/12/15 Срд 18:54:00 #38 №615738 
14514908409350.png
Аноним 30/12/15 Срд 19:01:31 #39 №615741 
>>615734
>Каррирование то?
Нет, вот это каррирование:
(lambda (x y) (f x y)) => (lambda (x) (lambda (y) (f x y)))
а это сечение или частичное применение:
(f x) => (lambda (y) (f x y))
Аноним 30/12/15 Срд 19:11:46 #40 №615747 
>>615713
>лени, паттерн-матчинга
Реализуется на макросах, как и каррирование и композиция.
>вывода типов
И как оно должно выглядеть, с динамической-то типизацией?
Аноним 30/12/15 Срд 19:29:48 #41 №615754 
>>615747
>Реализуется на макросах
Лень с ручными delay/force и без поддержки со стороны стандартной библиотеки? Костыльно и неюзабельно. Поэтому ею никто и не пользуется.
С паттерн-матчингом тоже не очень: синтаксис, видимо, не слишком подходящий, слишком много скобок выходит.
>как и каррирование и композиция
КаррированиеЧастичное применение тоже немного через жопу, т.к. требует явного указания. А композицию - да, можно.
>И как оно должно выглядеть, с динамической-то типизацией?
Никак. Ну или костыльно и через жопу.
Аноним 30/12/15 Срд 19:39:17 #42 №615761 
>>615747
Кстати, мне понравилось, как в cl21 сделали.
Там переопределили макрос function (который #') так, что
#'(and f g) => (conjoin #'f #'g)
#'(or f g) => (disjoin #'f #'g)
#'(f x) => (curry #'f x)
#'(compose f g) => (compose #'f #'g)
и т.д.
Аноним 30/12/15 Срд 19:40:30 #43 №615762 
>>615761
или #'(or 'f g) => (disjoin #'f g)
Уже точно не помню.
Аноним 30/12/15 Срд 20:49:42 #44 №615812 
>>615585
Дрракет поломали же.
Аноним 30/12/15 Срд 20:51:37 #45 №615813 
>>615812
Кто поломал?
Аноним 30/12/15 Срд 21:43:44 #46 №615862 
Упражнение 1.3.
Определите процедуру, которая принимает в качестве аргументов три числа и возвращает сумму
квадратов двух больших из них.

(define (st x b) (+ ( x x) ( b b)))
(define (asd a s v)
(cond ((and (> a s)(> v s)) (st a v))
((and (> a v)(> s v)) (st s a))
(else (st a s))))
(asd 1 2 3)
=> 5
(asd 1 3 4)
=> 10
Не могу понять что не так, почему он не выдает сумму двух наибольших чисел?
Аноним 30/12/15 Срд 21:49:55 #47 №615877 
>>615862
Последнее условие неправильное.
Аноним 30/12/15 Срд 22:27:57 #48 №615928 
>>615862
а понял ошибочка в
(else (st a s))))
а надо
(else (st v s))))
Аноним 30/12/15 Срд 22:29:23 #49 №615929 
14515037640080.webm
>>615877
cпс лови няшу
Аноним 30/12/15 Срд 22:32:32 #50 №615933 
>>615862
Проще ж можно
[code lang=scheme]
(define (yoba x y z)
(if (and (>= x z) (>= y z))
(+ ( x x) ( y y))
(yoba z x y)))
[/code]
Аноним 30/12/15 Срд 22:41:46 #51 №615947 
>>615933
Получается что ты замутил рекурсию? С изменение порядка очередности цифр z двинул вперед?
Аноним 30/12/15 Срд 22:48:54 #52 №615959 
>>615933
По ебалу бы тебе дать за такой код.
Аноним 30/12/15 Срд 22:52:12 #53 №615960 
>>615947
Да.
>>615959
Чому?
Аноним 30/12/15 Срд 22:59:24 #54 №615966 
>>615960
Потому что твоя задача бороться со сложностью в коде, а ты ебашишь хитровыебанное говно.
Аноним 30/12/15 Срд 22:59:30 #55 №615967 
>>615960
первый раз выдал Error: 3 is not a function [yoba, yoba, yoba, (anon)]

[code lang=scheme]
(define (yoba x y z)
(if (and (>= x z) (>= y z))
(+ ( x x) ( y y)) тут добавил оператор * и все норм
(yoba z x y)))
[/code]
Аноним 30/12/15 Срд 23:09:59 #56 №615982 
>>615966
так у него же проще
Аноним 30/12/15 Срд 23:21:52 #57 №615990 
>>615966
Наоборот проще читается, чем куча однообразных сравнений, от которых замыливается глаз.
Аноним 30/12/15 Срд 23:23:06 #58 №615992 
14515069866290.png
>>615967
Ты makabacode не используешь что ли?
Аноним 30/12/15 Срд 23:29:56 #59 №615999 
>>615992
первый раз слышу, это настройка темы сайта?
Аноним 30/12/15 Срд 23:33:36 #60 №616005 
>>615999
Userscrpit. Ссылка в ОП-посте ньюфаг-треда.
Аноним 31/12/15 Чтв 02:01:15 #61 №616115 
[code]<?php
echo "test";
?>[/code]
Аноним 31/12/15 Чтв 03:03:53 #62 №616127 
Посоветуйте гайдов по эмаксу для полного дауна, чтобы все просто (просто вводный курс в небольшом количестве статей), на английском или русском.
Аноним 31/12/15 Чтв 03:08:04 #63 №616128 
>>616127
Документацию спейсмакса поковыряй.
Аноним 31/12/15 Чтв 11:45:34 #64 №616188 
>>616127
А чем тебе встроенный туториал не угодил?
Аноним 31/12/15 Чтв 13:58:52 #65 №616238 
>>616188
Ты сам-то его открывал когда-нибудь?
Аноним 31/12/15 Чтв 14:30:40 #66 №616256 
>>616238
Я его первым делом прошел как первый поставил емакс (ВАНИЛЬНЫЙ, КАРЛ)
Аноним 31/12/15 Чтв 14:39:06 #67 №616261 
>>616256
Удивил. Всегда думал, что их никто не открывает. Я и вимтутор не проходил, не то что емаксовский.
>ВАНИЛЬНЫЙ, КАРЛ
Будто что-то удивительное. Стартеркиты только совсем недавно начали использовать, потому что их нормальных не было.
Аноним 31/12/15 Чтв 15:13:51 #68 №616274 
>>616261
Вимтутор я проходил за джва года до емакса.
Впрочем в емакс я вкатился только со второго захода.
Да я проходил туториал емакса дважды
Аноним 31/12/15 Чтв 15:14:18 #69 №616277 
>>616274
Алсо я вкатился в емакс когда читал SICP.
Аноним 31/12/15 Чтв 15:22:50 #70 №616282 
Слабо понимаю смысл туториала emacs. C-n C-p нахуй не нужны, а нужные вещи типа M-x grep не объясняются.
Аноним 31/12/15 Чтв 15:33:37 #71 №616286 
>>616282
>C-n C-p нахуй не нужны
Вот двачую, никогда этим говном не пользовался. Как и вимовскими k-l. Стрелки намного удобнее, особенно если Fn + стрелка = home, end, pgdown, pgup
Аноним 31/12/15 Чтв 15:34:39 #72 №616288 
>>616286
Или в виме jk. Уже не помню точно
Аноним 31/12/15 Чтв 15:36:40 #73 №616290 
>>616282
>>616286
Лолд. Вы просто не понимаете сути.
Вимовские хоткеи охуенны. Но вот джва режима не очень.

Емакс хоткеи становятся охуенными как только вы перенастроете клаву под ориганальную емаксову.

У меня ctrl == левый alt
alt = capslock

Помимо того что дефолтный емакс становится охуенно удобным, даже обычные C-c, C-x, C-v становятся на порядок удобнее.
Аноним 31/12/15 Чтв 15:38:56 #74 №616292 
>>616290
Alt слишком часто используется, чтобы переназначать его на капслок
Аноним 31/12/15 Чтв 16:10:50 #75 №616311 
>>616292
По сравнению с ктрл? Да и ты попробуй нажать капс мизинецем, это вполне удобно.
Аноним 31/12/15 Чтв 16:19:19 #76 №616322 
>>616311
Мне удобнее шифт и контрол мизинцем нажимать. А до капса тянуться надо.
Аноним 31/12/15 Чтв 16:40:33 #77 №616335 
Заметим, что наша модель вычислений разрешает существование комбинаций, операторы которых — составные выражения. С помощью этого наблюдения опишите, как работает следующая процедура:
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
Насколько понял если аргумент b больше нуля то меняем знак на +a -b, а если b ниже нуля, то возвращаем a b
Аноним 31/12/15 Чтв 16:53:44 #78 №616347 
>>616335
ошибался там получается сложение или вычитание как альтернатива
Аноним 31/12/15 Чтв 16:53:47 #79 №616348 
>>616322
Ты посмотри на свою кисть когда ты мизинцем кнтрл держишь. Она пиздец как неестественно изгибается.
Я 3 месяца так попользовался емаксом, рука начала болеть. Вот уже третий год с измененной раскладкой — брат жив, зависимость есть.
Аноним 31/12/15 Чтв 18:14:39 #80 №616390 
>>616348
На капсе тоже не слишком естественно. Ещё и непривычно.
Аноним 31/12/15 Чтв 18:23:54 #81 №616392 
>>616335
>Насколько понял если аргумент b больше нуля то меняем знак на +a -b, а если b ниже нуля, то возвращаем a b
Почти. Если b > 0, то возвращается функция +, а если меньше или ровно, то -. А потом уже эта функция применяется к двум аргументам: a и b
Аноним 31/12/15 Чтв 20:01:45 #82 №616426 
Test
Аноним 31/12/15 Чтв 20:05:14 #83 №616428 
>>616290
>Вимовские хоткеи охуенны.
Говно для инопланетян, у которых руки растут из сисек.
>Емакс хоткеи становятся охуенными как только вы перенастроете клаву под ориганальную емаксову.
Они всегда были говном. Решения, неудачнее C-n C-p сложно придумать. И дело тут вовсе не в модификаторе, а в том, что вместо нормального расположения рядом использованы зачем-то первые буквы слов next и previous. А эти буквы довольно далеко на клавиатуре.
Аноним 31/12/15 Чтв 20:12:14 #84 №616433 
>>616428
Хз, большую часть времени нужно "вниз", а вниз это "N" и нажимать его правым указательным вполне удобно.
ОСтальные перемещения обычно совершаются другими способами.
Аноним 31/12/15 Чтв 20:38:31 #85 №616445 
Категорически не переношу емакс, являясь упоротым вимоебом, юзаю slimv. Отсутствуют ли в нем какие-то фичи слайма, которые я упускаю?
Аноним 31/12/15 Чтв 20:40:20 #86 №616446 
>>616445
>Отсутствуют ли в нем какие-то фичи слайма
Скорее всего да. Не знаю ни одного расширения для вима, которое было бы полноценно портировано с емакса.
Аноним 31/12/15 Чтв 20:42:39 #87 №616448 
>>616445
А спейсмакс пробовал?
Аноним 31/12/15 Чтв 20:42:48 #88 №616449 
>>616445
Чем тебе не угодил evil-mode?
Самая полная реализация vim'а.
Аноним 31/12/15 Чтв 21:32:23 #89 №616461 
>>616448
Не люблю сборочки, я у мамки минималист. Пытался неоднократно в ванильный, но для меня любой редактор с одним режимом выглядит неполноценным.
>>616449
В любом случае, заново привыкать, конфиг пердолить, хотя, elisp выглядит привлекательнее, чем вим скрипты.
>>616446
В slimv есть комплит, подсказки по аргументам функций, балансировка скобок, jump to definition, макроэкспандинг, describe символ под курсором, eval/compile form/definition/file, из самого используемого. Что в слайме есть сверх этого? Есть ли смысл в болезненной миграции?
Аноним 31/12/15 Чтв 21:42:24 #90 №616465 
>>616461
>Не люблю сборочки
Это не "сборочка", а полноценный проект поверх емакса.
Аноним 31/12/15 Чтв 21:44:11 #91 №616466 
>>616461
>Что в слайме есть сверх этого?
Диспетчер, отладчик, дизассемблер. Из того, что сходу вспомнил.
Аноним 31/12/15 Чтв 22:13:59 #92 №616479 
>>616466
>отладчик, дизассемблер
Есть, как-то забыл об этом.
>Диспетчер
Wat? (гуглил, безрезультатно)
Аноним 31/12/15 Чтв 22:15:23 #93 №616481 
>>616479
xref кажись называется
Аноним 31/12/15 Чтв 22:17:50 #94 №616485 
>>616479
Тьфу, инспектор же.
Аноним 31/12/15 Чтв 22:18:34 #95 №616487 
>>616465
Сборочка это, для хипстошкольников.
Аноним 31/12/15 Чтв 22:18:42 #96 №616488 
>>616481
А xref - немного совсем другое
Аноним 31/12/15 Чтв 22:18:49 #97 №616489 
>>616465
https://github.com/syl20bnr/spacemacs
>An Emacs distribution
>не "сборочка"
Аноним 31/12/15 Чтв 22:20:30 #98 №616490 
>>616485
Инспектор тоже есть. И даже xref.
Аноним 31/12/15 Чтв 22:21:56 #99 №616492 
>>616489
"Сборочка" и дистрибутив - вещи разные.
Аноним 31/12/15 Чтв 22:28:47 #100 №616495 
>>616492
В чем же разница, поясни.
Аноним 31/12/15 Чтв 22:34:33 #101 №616501 
>>616495
Не очень хочется заниматься сейчас формализацией.
Объемом и качеством работ, может быть. Целью ещё, пожалуй.
Можно провести аналогию с дистрибутивом линукса и сборочкой линукса (предыдущие стартеркиты емакса представляли из себя не более, чем ЛФС с нескучным набором пакетов)
Аноним 31/12/15 Чтв 22:38:42 #102 №616504 
>>616490
И как это выглядит? Покажи инспектор на каком-нибудь объекте или классе CLOS'а
Аноним 31/12/15 Чтв 22:52:44 #103 №616515 
>>616504
http://kovisoft.bitbucket.org/tutorial3.html#inspobj
Глянь вон там. Сам не за пк сейчас.
>>616501
Любой дистрибутив линукса и есть "сборочка", состоящая из программных продуктов, большая часть которых разработана независимо (ну, почти) друг от друга. Если слово "сборочка" имеет для тебя уничижительный оттенок, тогда ок, пусть будет дистрибутив емакса, но это не меняет сути.
Аноним 31/12/15 Чтв 23:20:05 #104 №616528 
>>615102 (OP)
Анон, у Scheme хороший стандартный стандарт, R7RS, имеется с 2013 года, есть живые имплементации:
Chicken http://www.call-cc.org/
Kawa https://www.gnu.org/software/kawa/
Chibi http://synthcode.com/scheme/chibi/
Sagittarius https://bitbucket.org/ktakashi/sagittarius-scheme/wiki/Home
Larceny http://www.larcenists.org/
Gauche http://practical-scheme.net/gauche/index.html

Чому в шапке про Scheme какая-то хуета?
Аноним 31/12/15 Чтв 23:49:38 #105 №616536 
>>616528
Добавь сам, вкинь исправленный вариант.
Аноним 01/01/16 Птн 16:19:15 #106 №616652 
>>616528
С приходом R7RS схема уже стала практичной? Или всё так же, как и было?
Аноним 01/01/16 Птн 19:41:45 #107 №616744 
>>616652
Как только R7RS-large допилят.

Но вообще Guile сейчас вполне используется в GNU вместо Lua, а кто-то даже web-фреймворк написал на нем http://web-artanis.com
Аноним 02/01/16 Суб 11:08:52 #108 №616907 
14517221323530.gif
Упражнение 1.6.
Лиза П. Хакер не понимает, почему if должна быть особой формой. «Почему нельзя просто определить ее как обычную процедуру с помощью cond?» -спрашивает она. Лизина подруга Ева Лу Атор утверждает, что, разумеется, можно, и определяет новую версию if:
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))
Ева показывает Лизе новую программу:
(new-if (= 2 3) 0 5)
5
(new-if (= 1 1) 0 5)
0
Обрадованная Лиза переписывает через new-if программу вычисления квадратного корня:
(define (sqrt-iter guess x)
(new-if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
Что получится, когда Лиза попытается использовать эту процедуру для вычисления квадратных корней? Объясните.
Насколько понял разница в порядке вычисление аргументов, если представить:
(define (p) (p))
(cond ((= 0 0) 0) (else p))
выдает 0
(define (p) (p))
(if (= 0 0) 0 p)
выдает 0
подразумевается что при применении функции cond, интерпретатор вычисляет аппликативным порядком и должен первым делом вычислить значение аргументов а конкретно p и зациклиться, но он не зацикливается
if особая форма вычисляет предикат и потом следствие или альтернативу поэтому он не зацикливается потому как предикат истина а значит просто не вычисляет альтернативу, ничего не понятно

Аноним 02/01/16 Суб 11:48:57 #109 №616921 
>>616907
Отличное упражнение на понимание того, как происходит выполнение процедур.

Вспомним прошлое упражнение и тот факт, что Scheme при интерпретации использует аппликативный порядок вычислений. Итак, как же будет вычисляться фунция Лизы?

(define (sqrt-iter guess x)
(new-if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
При вычислении new-if сначала должны быть вычислены все ее аргументы. С первыми двумя из них проблем нет, а вот при вычислении третьего new-if снова обращается к sqrt-iter, которая затем опять вызовет new-if… и так до бесконечности. Ограничивающего условия, обеспечивающего выход из этого порочного круга, нет. Таким образом программа Лизы, переписанная в таком виде, зациклится.

Почему же такой проблемы не возникает при использовании нормального if вместо new-if? Все просто. Обычный if является особой формой, он вычисляется не так, как стандартные процедуры. Для вычисления его значения не обязательно будут вычислены все операнды (более того, гарантированно будут вычислены только два из трех). Таким образом sqrt-iter будет вычисляться только в случае, когда решение еще не достаточно хорошее, а в противном случае вычисляться не будет, что и гарантирует выход из цикла.
Аноним 02/01/16 Суб 13:11:14 #110 №616954 
>>616921
Помню когда первый раз читал SICP, эта простейшая, элементарная и понятная на уровне подсознания концепция, выраженная словами уровня "аппликативный порядок вычисления", взрывала мозг почище матана студенту троешнику.

Отсюда вывод?
Любую хуйню можно приподнести катастрафически сложно, какой-бы просто она на самом деле не была.
А на самом деле, формализация даже простейших понятий штука нетривиальная, да.
Аноним 02/01/16 Суб 13:31:48 #111 №616962 
>>616954
Дурацкий вывод, из которого рождаются говнопреподаватели.
Аноним 02/01/16 Суб 14:42:13 #112 №616988 
>>616954
проблема в том что проверяя эту догадку написал
(define (p) (p))
(cond ((= 0 0) 0) (else p))
выдает 0
(define (p) (p))
(if (= 0 0) 0 p)
выдает 0
подразумевается что при применении функции cond, интерпретатор вычисляет аппликативным порядком и должен первым делом вычислить значение аргументов а конкретно p и зациклиться, но он не зацикливается
if особая форма вычисляет предикат и потом следствие или альтернативу поэтому он не зацикливается потому как предикат истина а значит просто не вычисляет альтернативу, ничего не понятно
Аноним 02/01/16 Суб 14:45:46 #113 №616991 
>>616988
cond это синтаксический сахарок в if-else-if-else
Аноним 02/01/16 Суб 16:02:55 #114 №617026 
>>616988
cond - макрос, а не функция
Аноним 02/01/16 Суб 16:39:07 #115 №617042 
14517419472530.png
>>616988
>>617026
Я >>616991 так и сказал.
Аноним 02/01/16 Суб 16:45:29 #116 №617049 
>>617042
Синтаксический сахарок - слишком нечеткое понятие. У меня, например, ассоциируется больше с введенными конструкциями (типа do-нотации в хаскеле), чем с макросами.
Лисповые макросы всё-таки синтаксис не меняют, они меняют семантику вычисления.
Аноним 02/01/16 Суб 16:50:46 #117 №617053 
Анон, подскажи редактор или IDE для Scheme (Guile). Сейчас пользую gVim, хотелось бы более лучшей подсветки хотя бы, да и прочих удобств.
Об Emacs сломал 7 пальцев.
Аноним 02/01/16 Суб 16:58:32 #118 №617056 
>>617053
spacemacs же
Аноним 02/01/16 Суб 17:30:52 #119 №617071 
>>617053
emacs + evil-mode spacemacs
Аноним 02/01/16 Суб 19:02:07 #120 №617169 
>>616991
Упражнение 1.6.
Лиза П. Хакер не понимает, почему if должна быть особой формой. «Почему нельзя просто определить ее как обычную процедуру с помощью cond?» -спрашивает она. Лизина подруга Ева Лу Атор утверждает, что, разумеется, можно, и определяет новую версию if:
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))
Ева показывает Лизе новую программу:
(new-if (= 2 3) 0 5)
5
(new-if (= 1 1) 0 5)
0
Обрадованная Лиза переписывает через new-if программу вычисления квадратного корня:
(define (sqrt-iter guess x)
(new-if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
Что получится, когда Лиза попытается использовать эту процедуру для вычисления квадратных корней? Объясните.
Аноним 02/01/16 Суб 19:08:18 #121 №617170 
>>617053
Вим + slimv + MIT/GNU Scheme (как мы ранее выяснили, смысла ломать пальцы и перекатываться с редактора богов нет никакого)
Аноним 03/01/16 Вск 00:10:57 #122 №617420 
>>617170
Это ты только для себя выяснил. Так что не обобщай.
Для меня как был вим - редактором для конфигов, так и остался.
Аноним 03/01/16 Вск 02:59:51 #123 №617504 
>>617420
Преимуществ емакса при использовании в качестве swank клиента (о чем, конкретно, и шла речь) мы найти не смогли, а значит, можно отказаться от позиционирования его как единственной легитимной лишп-IDE и избавить от триггеров людей, уже успевших травмироваться этим чудом инженерной мысли.
Аноним 03/01/16 Вск 03:49:00 #124 №617522 
>>617504
Помимо сванкаслайма есть ещё helm'ы, projetctile, отсутствие режимов и прочие.
Кроме того, у вима заметные проблемы с производительностью. Работает он шустро только без расширений.
>можно отказаться от позиционирования его как единственной легитимной лишп-IDE
Не стоит. Пусть уж лучше люди воспользуются более полноценным спейсмаксом, чем nodepad++ на стероидах и с режимами.
Аноним 03/01/16 Вск 03:51:02 #125 №617523 
>>617504
А вообще, шел бы ты в IDE-тред. Тут всё-таки лисп обсуждается, а не редакторы.
Аноним 03/01/16 Вск 11:56:53 #126 №617593 
Делал задание на AutoLisp (в Автокаде), это пиздец.
Аноним 03/01/16 Вск 12:40:07 #127 №617621 
>>617522
>helm'ы, projetctile
Думаешь, для вима расширений с таким функционалом нет? Серьезно?
>у вима заметные проблемы с производительностью
Как там в 2010? Еeasytags (единственное, в прошлом, тормозящее расширение) уже научился в фоне обновлять базу, всякие движки для семантического автодополнения дополняют чуть ли не вперед вводящих код пальцев, за слаймом тормозов не замечал.
>>617523
Да ну, там senior java developers обсуждают новые плагины к нетбинс, куда мне с вимом со своим.
Аноним 03/01/16 Вск 12:57:43 #128 №617632 
14518150638440.gif
>>617169
помогите с этим упражнением
Аноним 03/01/16 Вск 13:10:14 #129 №617639 
>>617632
Про порядок вычисления аргументов функции знаешь?
Аноним 03/01/16 Вск 14:04:37 #130 №617664 
>>617639
аппликативный и нормальный порядок?
Да, если new-if определить через процедуру cond то в момент вычисление значений аргументов процедура должна зациклиться? Но этого не происходит вот пример:
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))
(define (p) (p))
(new-if (= 0 0) 0 p)
выдает ноль, хотя при вычислении значения p она должна зациклиться
Аноним 03/01/16 Вск 14:24:42 #131 №617678 
>>617664
У тебя p не определено, а только (p). Если заменить то уйдет в цикл.
Аноним 03/01/16 Вск 14:32:22 #132 №617686 
>>617678
в смысле (define (p) (p)) на (define (p) p)
или
(new-if (= 0 0) 0 p) на (new-if (= 0 0) 0 (p))
??
Аноним 03/01/16 Вск 14:39:27 #133 №617691 
>>617686
> (new-if (= 0 0) 0 (p))
На это. Ты же определил (p) а не p. Можешь ничего не менять, а определить p, например (define p (p)) - тогда тоже зациклится. р и (p) это разные вещи.
Аноним 05/01/16 Втр 00:06:27 #134 №618852 
14519415875620.png
Лиспаны, велик ли оверхед от использования displaced массивов? Они всё-таки перестают быть simple-array и становятся обычными векторами.
Аноним 05/01/16 Втр 01:04:48 #135 №618891 
>>618852
Охуенно велик. Велосипедил парсер json, при использовании displaced тупил сильнее в разы, аж что-то вроде пары секунд против 0.1 на двухметровый файл.
Аноним 05/01/16 Втр 01:10:22 #136 №618893 
>>618891
И как решил? Сделал свой displaced на структурке или :start :end?
Аноним 05/01/16 Втр 04:02:55 #137 №618958 
>>618893
>:start :end?
Это. С displaced чисто для теста производительности и делал, они там и не нужны, хуле, прошелся по строке, сгенерировал список атомов, вот и весь лексический анализ.
А тебе они зачем понадобились? Или сугубо академический интерес?
Аноним 06/01/16 Срд 00:32:30 #138 №619695 
Начал учить sicp в качестве основы для себя. Заодно учу дискретку по лекциям из интуита. Потом хочу взяться за алгоритмы макконелла, что еще посоветует?
Аноним 06/01/16 Срд 00:33:13 #139 №619696 
14520295934890.png
>>619695
Алсо, эта Ракета - просто няха. Так удобно, ничего не надо пердолить, а все есть.
Аноним 06/01/16 Срд 01:12:37 #140 №619741 
>>616277
Анон, вот мне интересно, ты прочел СИСП уже? Давно? Что ты делаешь дальше?
Аноним 06/01/16 Срд 04:45:48 #141 №619842 
>>619696
>ничего не надо пердолить
То есть ее не настроить ПОД СЕБЯ?
Аноним 06/01/16 Срд 06:16:06 #142 №619861 
>>619741
HtDP, EOPL, TAPL, CTM - список можно продолжать бесконечно.
Аноним 06/01/16 Срд 07:13:34 #143 №619867 
>>619861
>можно продолжать бесконечно
Я не понял - смысл в том, чтобы бесконечно читать?
Аноним 06/01/16 Срд 11:13:30 #144 №619908 
>>619741
Тогда осилил до циклического метаинтерпретатора, потом как обычно накатились жизненные обстоятельства и стало не до этого. К тому моменту когда я читал сисп, я уже сидел в офисе за зарплату писал говнокод, так что я просто продолжил писать говнокод, обмазываясь по возможности функциональщиной.
Аноним 06/01/16 Срд 14:02:50 #145 №619993 
На каких ЯП посетители лиспотреда пишут на работе?

Если те, кто пишут на лиспе? Что за сфера и задачи?
Аноним 06/01/16 Срд 14:10:38 #146 №619996 
>>619993
Считаются ли мелкие утилиты для личного пользования на емакс-лиспе для работы частью работы?
Аноним 06/01/16 Срд 14:20:12 #147 №620000 
>>619996
Сам как считаешь? По-моему нет.
Аноним 06/01/16 Срд 14:34:54 #148 №620016 
Кто-то работает "лиспером" в какой-то конторе? (именно как lisp devloper, а не какой-то джава-хуй, а лисп только для себя). Расскажите кулстори
Аноним 06/01/16 Срд 16:29:57 #149 №620085 
Анон, я что-то не понимаю вообще ничего.
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
Значение приближения улучшается с помощью взятия среднего между ним и частным
подкоренного числа и старого значения приближения:
(define (improve guess x)
(average guess (/ x guess)))
где
(define (average x y)
(/ (+ x y) 2))


Что здесь под guess?
Что за sqr-iter? Я вообще ничего не пойму, помогите разобраться с этим.
Аноним 06/01/16 Срд 16:32:36 #150 №620089 
>>620085
Это из sicp, поиск квадратного корня, если что.
Аноним 06/01/16 Срд 16:40:39 #151 №620098 
>>619867
Век живи - век учись.
Аноним 06/01/16 Срд 16:47:17 #152 №620100 
>>620016
https://vseloved.github.io/ Вот чувак в grammarly работает. Они там йобу для обнаружения и исправления ошибок в текстах на инглише пилят.
А из местных врядли кто лиспером устроился. Одни нюфаги же.
Аноним 06/01/16 Срд 18:15:51 #153 №620164 
Печально, лиспаны. Мне нравится это семейство и программирование на нём доставляет мне много радости, но практически полное отсутствие работы-сильный демотиватор. Его даже на голом энтузиазме невозможно протащить в продакшен. А на человека, который пишет на лиспе, аж ссылки кидают, как на диковинку.
Аноним 06/01/16 Срд 18:18:23 #154 №620170 
>>620164
Я это к тому, что не вижу для себя больше смысла углубляться в лиспы.
Аноним 06/01/16 Срд 20:38:29 #155 №620290 
>>620164
>программирование на нём доставляет мне много радости, но практически полное отсутствие работы-сильный демотиватор
Не вижу связи. Нравится что-то делать — делай. Нет — нет.
Чай не в тайге живешь, чтоб проблемами выживания перечеркивать любимое занятие.
>Его даже на голом энтузиазме невозможно протащить в продакшен.
Технических преград нет. Тем более, что для особо интерпрайзных случаев существуют качественные коммерческие реализации с платной поддержкой.
А нетехнические при желании преодолеваются: кто-то стартупы организовывает, кто-то начальников переубеждает, а кто-то и уже существующую вакансию находит.
>А на человека, который пишет на лиспе, аж ссылки кидают, как на диковинку.
Я кинул ссылку, потому что у них действительно интересный проект. Такой и на популярном языке днем с огнем не сыщешь. Тем более в странах бывшего СССР.
Аноним 06/01/16 Срд 20:50:14 #156 №620298 
>>620085
>ues
sqr-iter? - функция для поиска квадратного корня из х. У нее два аргумента: guess - предполагаемый ответ, при самом первом вызове берется абсолютно любое число, и потом оно постепенно приближается к нужно числу, квадратно корню из х которое является вторым аргументом. Функция sqr-iter? получает два числа guess и x. Сначала проверяется не является ли guess достаточно хорошим ответом (вызывается good-enough?), если достаточно хороший то просто возвращается guess. Если нет, то значение guess улучшается с помощью вызова improve и в sqr-iter? передается улучшеный вариант guess, и дальше все с начала - проверяется достаточно ли он хорош, если нет то еще раз улучшается и так пока не найдется достаточно хороший вариант.
Аноним 06/01/16 Срд 22:51:58 #157 №620401 
>>620298
Много добра тебе, братуха!
Аноним 07/01/16 Чтв 16:24:32 #158 №620867 
14521730727010.png
Извините что спрашиваю нубский вопрос, но до сих пор не нашел ответ на него, ни в лиспотредах, ни в шапке треда.
Зачем нужен LISP?
Спасибо!
Аноним 07/01/16 Чтв 17:51:20 #159 №620909 
14521782809850.webm
рассмотрим следующую задачу: сколькими способами
можно разменять сумму в 1 доллар, если имеются монеты по 50, 25, 10, 5 и 1 цент?
В более общем случае, можно ли написать процедуру подсчета способов размена для
произвольной суммы денег?
Аноним 07/01/16 Чтв 18:35:32 #160 №620935 
>>620909
Тебе же даже в книжке решение выдали, что тебе еще надо?
Аноним 07/01/16 Чтв 19:10:40 #161 №620954 
>>620935
я его не понял
Аноним 07/01/16 Чтв 19:15:14 #162 №620960 
Число способов разменять сумму a с помощью n типов монет равняется
• числу способов разменять сумму a с помощью всех типов монет, кроме первого,
плюс
• число способов разменять сумму a − d с использованием всех n типов монет, где
d — достоинство монет первого типа.

какой-то абсурд число способов размена равняется числу способов размена без 50 + число способов разменять 100 - 50??? бред
Аноним 07/01/16 Чтв 19:15:33 #163 №620963 
>>620867
Тут существует лиспотред только из-за SICP'a. Ну, есть еще всякие диалекты, с помощью которых реально быстро можно написать всякие утилитки для себя.
Аноним 07/01/16 Чтв 19:17:22 #164 №620964 
>>620867
Для истории. LISP остался в прошлом. Уже и реализаций-то его живых не осталось.
Аноним 07/01/16 Чтв 19:24:23 #165 №620968 
>>620963
>Тут существует лиспотред только из-за SICP'a.
NIET. В прошлых тредах сикпа практически не было.
Аноним 07/01/16 Чтв 19:33:45 #166 №620972 
>>620968
Разве? А чем можно объяснить популярность сикпа? Вот лично я тут и сижу из-за сикпа. Но он не понятный очень, много нелогичных вещей и неявных решений.
Аноним 07/01/16 Чтв 19:39:55 #167 №620974 
>>620960
объясните на конкретном примере допустим число комбинаций 100
то следуя этому определения 100=(+(- 100 кроме первого) (- 100 достоинство монет первого типа))
Что значит "кроме первого", "достоинство монет первого типа" это 50?
Аноним 07/01/16 Чтв 21:00:05 #168 №621040 
>>620972
>А чем можно объяснить популярность сикпа?
Считается неплохим вводным в программирование материалом.
Аноним 07/01/16 Чтв 21:24:19 #169 №621068 
>>621040
Как по мне он гораздо более интересен как вводная в функциональное программирование и лямбда исчисление.
Аноним 07/01/16 Чтв 21:25:59 #170 №621069 
>>621068
Насколько я помню, там совсем мало внимания уделяется ФП
Аноним 07/01/16 Чтв 21:39:28 #171 №621075 
>>621069
Я имею ввиду не столько функциональщину уровня хачкеля, сколько то, что первые несколько глав программирование преподносится как функциональная, математическая дисциплина. За счет модели подстановок и отсутствия присвоений.
Аноним 07/01/16 Чтв 22:05:23 #172 №621105 
14521935231140.webm
Число способов разменять сумму a с помощью n типов монет равняется
• числу способов разменять сумму a с помощью всех типов монет, кроме первого,
плюс
• число способов разменять сумму a − d с использованием всех n типов монет, где
d — достоинство монет первого типа.

на конкретном примере допустим число комбинаций 100
то следуя этому определения 100=(+(- 100 кроме первого) (- 100 достоинство монет первого типа))
Что значит "кроме первого", "достоинство монет первого типа" это 50?
Аноним 07/01/16 Чтв 22:47:51 #173 №621144 
Какая разница между
(define (mult a b)
(cond ( (= b 0) 0)
( (even? b) ( (double a) (halve b)))
( else (+ a (
a (- b 1))))))

и

(define (mult a b)
(cond ( (= b 0) 0)
( (even? b) (double (mult a (halve b))))
( else (+ a (* a (- b 1))))))

?
Аноним 07/01/16 Чтв 22:49:08 #174 №621146 
>>621144
Блядь.
( (even? b) (mult (double a) (halve b)))
( (even? b) (double (mult a (halve b))))
Аноним 07/01/16 Чтв 22:49:52 #175 №621147 
>>621144
>( else (+ a ( a (- b 1))))))

>( else (+ a ( a (- b 1))))))
>( a (- b 1))
Здесь а умножается на скобку b-1
Аноним 07/01/16 Чтв 23:07:36 #176 №621154 
>>621147
Не траль. Я про порядок здесь >>621146
В чем разница будет по сути?
Аноним 08/01/16 Птн 03:11:34 #177 №621343 
>>621154
Я не тралил, т.к. ответил раньше, чем ты написал. Ты же программист, должен понять, что я отвечал на тот пост, который был. А он был с ошибками. Конкретно на это: >>621146
ничего не скажу, сам только обучаюсь.
Аноним 08/01/16 Птн 05:42:25 #178 №621400 
>Lisp
Зойчем нужен? Где применяется, кроме модных и исследовательских проектов?
Аноним 08/01/16 Птн 06:39:39 #179 №621440 
Число способов разменять сумму a с помощью n типов монет равняется
• числу способов разменять сумму a с помощью всех типов монет, кроме первого,
плюс
• число способов разменять сумму a − d с использованием всех n типов монет, где
d — достоинство монет первого типа.
Приведите конкретный пример этого типа, в виде формулы
Аноним 09/01/16 Суб 01:36:59 #180 №621974 
Листаю сравнение кложуроскриптоты с жсом: https://github.com/clojure/clojurescript
Почему мне хочется блевать от жабоговна проступающего через слой разномастных скобок?
Аноним 09/01/16 Суб 06:33:49 #181 №622040 
14523104290570.png
>>621974
Ты про это? Да, кложура/кложуроскрипт - она такая.
Аноним 09/01/16 Суб 14:26:18 #182 №622186 
>>622040
Еще IProtocol мне устроил жабоизлеяние в мозг.
Аноним 09/01/16 Суб 19:06:10 #183 №622362 
>>622186
Это ж основная фича кложуры - быть нескучным синтаксисом поверх существующего языка, а не полноценным самостоятельным языком.
Аноним 09/01/16 Суб 21:20:25 #184 №622488 
>>622362
По сравнению с тем говном что они предлагают, жс выглядит вполне себе неплохо.
Аноним 09/01/16 Суб 22:41:25 #185 №622559 
>>622488
Ну, если смотреть вцелом, то не так уж плохо. Уж точно лучше жс.
Аноним 09/01/16 Суб 22:46:17 #186 №622565 
>>622559
>>622488
Сорта говна.
Аноним 10/01/16 Вск 00:03:12 #187 №622606 
>>622362
По-моему, я тебе уже 2-3 раза в разных тредах объяснял за Кложу.
Но мне не лень, объясню ещё раз:
В языке программирования важно то, какие вещи он делает удобными и идиоматичным. То есть, какой код будет писать программист, если он будет идти по пути наименьшего сопротивления относительно языка.
Кложа делает удобным и идоматичным использование иммутабельных данных и использование явной модели времени для описания изменяющихся данных. Именно такой код пишется, когда тупо используешь стандартную библиотеку.
Интероп с хост-платформой (типа использования js-объектов) нужен для использования существующих библиотек, когда это необходимо.
Аноним 10/01/16 Вск 00:05:14 #188 №622607 
>>622606
Не вижу противоречий моим словам.
Аноним 10/01/16 Вск 00:17:57 #189 №622614 
>>622607
Нескучный синтаксис - это Кофескрипт. А у Кложескрипта другая семантика.
Аноним 10/01/16 Вск 00:35:36 #190 №622621 
>>622614
У кофескрипта тоже другая семантика: объектная система не прототипная, а классовая.
Кстати, вот его-то, в отличие от кложуры, можно с небольшой натяжкой назвать полноценным языком, т.к. в нем нет той неидиоматичной неоднородности низлежащего языка, которая проглядывается в любой кложуре.
Аноним 10/01/16 Вск 00:45:02 #191 №622625 
>>622621
Если в JS система прототипная, а в Кофескрипте классовая, то как использовать JS библиотеки, API которых основаны на прототипах? Не будет ли это выглядеть точно так же неиодамтично?
Аноним 10/01/16 Вск 00:54:09 #192 №622631 
>>622625
Из под кофе сторонние библиотеки юзаются как будто они написаны на кофе и наборот тоже самое. Плюс есть компилятор туда-сюда(js2coffee)
Аноним 10/01/16 Вск 00:59:48 #193 №622637 
>>622614
Вот тебе тоже нескучный синтаксис и другая семантика в одном флаконе:
http://ldeniau.web.cern.ch/ldeniau/oopc.html#COS
Аноним 10/01/16 Вск 16:43:15 #194 №622973 
Есть кто-нибудь кто ковыряет SICP и планирует дальше по хардкору всё изучать? Я просто тоже где то там сейчас, могли бы вместе уёбывать алгоритмы.
Аноним 11/01/16 Пнд 00:10:39 #195 №623294 
>>622973
И как ты это себе представляешь?
Аноним 11/01/16 Пнд 00:24:06 #196 №623302 
>>623294
Двачую. По SICP угорают только шизоиды, которые не понимают, зачем нужно общение, если можно обойтись без него.
Аноним 11/01/16 Пнд 16:07:48 #197 №623341 
>>623302
Но ведь это действительно так.
Аноним 11/01/16 Пнд 17:36:42 #198 №623384 
>>622973
я это ты, пили асечку-писечку
Аноним 11/01/16 Пнд 18:18:49 #199 №623414 
>>623384
Вы бы не просто изучали алгоритмы, а запилили бы что-нибудь годное на основе изученного.
Аноним 11/01/16 Пнд 20:29:01 #200 №623499 
>>622973
пиши скайп свой
Аноним 11/01/16 Пнд 20:37:13 #201 №623507 
>>623294
Если застрял где-то можно подсказочку попросить или просто обсудить что не понял. А дальше какие-нибудь проекты вместе запилить.
Аноним 11/01/16 Пнд 20:59:37 #202 №623522 
>>623499
daemondaren
Аноним 11/01/16 Пнд 21:01:20 #203 №623525 
>>623522
>daemon
ты долбаёб?
Аноним 11/01/16 Пнд 21:46:57 #204 №623551 
>>623525
Ясно.
Аноним 11/01/16 Пнд 22:54:39 #205 №623599 
https://github.com/takagi/common-lisp-script
Аноним 12/01/16 Втр 12:43:51 #206 №623963 
14525918315630.png
Решил таки обмазаться туториалом по SDL от ленивого фу.
Общелисп-куны, посмотрите код, скажите что бросается в глаза:
https://github.com/TatriX/cl-sdl2-tutorial/blob/master/1/main.lisp

На основе http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php
Аноним 12/01/16 Втр 13:32:15 #207 №624022 
>>623963
Добавил еще парочку: https://github.com/TatriX/cl-sdl2-tutorial
В общем, если кому-то интересен поясняющий текст или может быть даже видео — пишите.
Аноним 12/01/16 Втр 14:26:04 #208 №624053 
очень странные у вас треды
вы бросаетесь от реализации к реализации, читаете какие-то книжки и прочее
а попробуйте просто сделать одно реальное приложение
Аноним 12/01/16 Втр 14:39:51 #209 №624067 
>>624053
Ну я сделал, например. И что?
Аноним 12/01/16 Втр 14:41:10 #210 №624068 
>>623963
>>624022
Ну, там особо и бросаться-то нечему.
Отрисовку, кстати, удобнее вынести в отдельную функцию, чтобы можно было легко менять код налету.
Аноним 12/01/16 Втр 14:47:19 #211 №624072 
>>624053
С чего ты взял, что кто-то здесь будет публиковать свои проекты? Это не гитхаб-тред.
Аноним 12/01/16 Втр 14:48:00 #212 №624073 
>>624068
Я пытаюсь сделать так, чтобы код был максимально похож на код из оригинальных туториалов.
Аноним 12/01/16 Втр 14:50:05 #213 №624076 
>>624073
Оригинальные же по первой версии sdl, а она заметно отличается от второй.
Аноним 12/01/16 Втр 14:52:46 #214 №624080 
>>624076
Оригинальных всмысле тех что на cpp написаны.
Аноним 12/01/16 Втр 15:00:49 #215 №624085 
>>624080
А, и точно вторая версия. Я первые уроки пощелкал, мне показалось, что первая.
Аноним 12/01/16 Втр 15:49:02 #216 №624127 
14526029423900.png
>>624022
Еще парочку переписал.
Аноним 12/01/16 Втр 17:04:39 #217 №624207 
https://itch.io/jam/january-2016-lisp-game-jam
Таки участвовал кто-нибудь? Или тоже забили?
Аноним 12/01/16 Втр 17:05:20 #218 №624208 
>>624207
Забили, да.
Аноним 12/01/16 Втр 17:07:58 #219 №624211 
>>624208
Жалко даже, что как-то тихо и незаметно прошло.
Аноним 12/01/16 Втр 17:08:40 #220 №624212 
Обосрался я чет на 5 туториале: http://lazyfoo.net/tutorials/SDL/05_optimized_surface_loading_and_soft_stretching/index.php

(defun load-texture (window renderer filename)
(sdl2:create-texture-from-surface renderer
(sdl2:convert-surface-format (sdl2:load-bmp filename)
(sdl2::sdl-get-window-pixel-format window))))

Хуй пойми че пихать в convert-surface-format
Аноним 12/01/16 Втр 17:18:57 #221 №624217 
>>624212
Ты про это?
>optimizedSurface = SDL_ConvertSurface( loadedSurface, gScreenSurface->format, NULL );
surface-format же
Аноним 12/01/16 Втр 17:26:12 #222 №624222 
14526087729650.png
>>624217
хз
Аноним 12/01/16 Втр 17:31:22 #223 №624226 
>>624222
Константы sdl2-ffi:+sdl-pixelformat-* тоже не подходят, convert-surface-format ругается:
The value NIL is not of type (UNSIGNED-BYTE 32).
Аноним 12/01/16 Втр 17:39:59 #224 №624232 
>>624226
Так, до меня доперло что скармливать в функцию:
(sdl2:convert-surface-format (sdl2:load-bmp filename) :rgb24)

Осталось понять как выдрать формат из окна/рендерера.
Аноним 12/01/16 Втр 17:44:07 #225 №624235 
14526098473010.png
>>624222
Мож у тебя ещё автокомплит хуево прикручен?
Аноним 12/01/16 Втр 18:09:23 #226 №624253 
>>624235
Нет, парни с #lispgames помогли. Оказывается протухшая версия (cl-sdl2-20150709-git) была.

Я правда все равно не могу эту херню заставить работать пока.
Аноним 12/01/16 Втр 18:17:04 #227 №624257 
>>624253
Обнови.
(ql:update-client)
(ql:update-all-dists)
Аноним 12/01/16 Втр 18:20:38 #228 №624258 
>>624257
Обновил уже.
(sdl2::surface-format-format (sdl2:get-window-surface win)))
Крашится с ошибкой: got Unhandled memory fault at #x8.
Аноним 12/01/16 Втр 18:46:20 #229 №624278 
14526135807700.png
14526135807701.png
>>624258
В load-bmp check-null проебан, поэтому ломается без внятных ошибок.
Аноним 12/01/16 Втр 18:53:11 #230 №624287 
>>624258
Автору cl-sdl2 исправления с добавленным check-null отправь, а то мне лень на гитхабе регистрироваться регистрировать.
Аноним 12/01/16 Втр 19:01:58 #231 №624304 
>>624278
load-bmp работает как надо. Ладно, уже разбираемся с автором.
Аноним 12/01/16 Втр 19:08:26 #232 №624310 
>>624304
Т.е. у тебя другая ошибка? Странно. Тогда почему у меня load-bmp на формат изображения ругается?
Аноним 12/01/16 Втр 19:15:20 #233 №624313 
>>624310
Ты посмотри на ошибку то, там же очевидный null-pointer
Аноним 12/01/16 Втр 19:17:57 #234 №624316 
>>624313
Возле очевидного нулпоинтера очевидное описание ошибки с очевидным unknown pixel format
Аноним 12/01/16 Втр 19:21:48 #235 №624318 
>>624313
>unknown pixel format
Эту строку SDL_GetError возвращает, если что.
Аноним 12/01/16 Втр 19:49:39 #236 №624336 
>>624318
Убрал к херам собачим рендерер: https://github.com/TatriX/cl-sdl2-tutorial/blob/master/5/main.lisp
Один хер крашится на оптимизации.
Аноним 12/01/16 Втр 19:57:59 #237 №624344 
>>624318
В общем ты был прав. Проверку check-null вкорячили уже в master.
Аноним 12/01/16 Втр 23:26:17 #238 №624497 
https://github.com/TatriX/cl-sdl2-tutorial
Привел туториалы к каноничному виду.
Аноним 13/01/16 Срд 11:45:00 #239 №624719 
http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.html
Аноним 13/01/16 Срд 12:59:42 #240 №624755 
В какой ситуации стоит использовать макрос, а когда можно обойтись обычной функцией?
Аноним 13/01/16 Срд 18:26:29 #241 №624922 
>>624755
Если макрос и функция в твоем случае взаимозаменяемы, то нужно использовать функцию. А в случае необходимости оптимизации вызова функции использовать compiler macro. Но такое случается редко.
Вообще, макросами без надобности лучше не злоупотреблять.
Советую тебе почитать onlisp. Этот момент там хорошо описан.
Аноним 13/01/16 Срд 19:51:28 #242 №624970 
>>624922
Читаю, пока не дошел до этого.
Аноним 13/01/16 Срд 19:54:05 #243 №624971 
>>624922
Всякие with-* штуки часто делают через макросы.
Но ведь их можно сделать и через обычную функцию, но тогда придется передавать туда лямбду, что не очень удобно. Хотя в статье >>624719 давали ссылку на call-with- макросы. Да и в слайме макросы не удобны, потому что приходится компилить все функции которые их используют.
Аноним 13/01/16 Срд 20:35:22 #244 №624996 
>>624971
>Но ведь их можно сделать и через обычную функцию, но тогда придется передавать туда лямбду, что не очень удобно.
Ну, само собой, что не стоит изъёбываться, всеми силами игнорируя макросы в тех случаях, когда их использование целесообразно.
Под взаимозаменяемыми я имел в виду что-то вроде этого:
[code lang=common-lisp]
(defun foo (x y) (bar x y))
(defmacro foo (x y) `(bar ,x ,y))
[/code]
потому что многие поначалу начинают их активно использовать как аналог инлайновым функциям.
Аноним 13/01/16 Срд 21:23:53 #245 №625030 
>>624996
Так (declare inline), не?
https://www.youtube.com/watch?v=HM1Zb3xmvMc
Аноним 13/01/16 Срд 21:37:17 #246 №625039 
>>621440
Предположим ты помогаешь дяде в каком-нибудь небольшом магазинчике, заменяя его его иногда, но при этом любишь программировать. Однажды ты на автомате даешь сдачу очередному покупателю, а вечером тебе приходит идея посчитать все возможные пути размена какой-то суммы. Так как ты программист по своей сути, то ты этому делу тут же хочешь научить своего лучшего электронного друга. Все начинается с разборов считаемых нетрудно примеров: сколькими способами можно разменять сумму в 11 центов? Ответ: 4. Почему так? Потому что группа монет, которыми ты можешь произвести размен это: 10, 5 и 1. Ты человек, и видишь ответ насквозь: (5 + 5 + 1), (1 11), (5 + 6 1), (10 + 1). Но нужен алгоритм. Пусть есть А) число способов разменять сумму, с применением всех номиналов, кроме максимального для данной группы - 10 центов, т.е. (5 + 5 + 1), (1 11), (5 + 6 1). Б) число способов разменять сумму, оставшуюся после отнятия монетой высшего номинала для данной группы. Т.е. 11 - 10 = 1. В итоге получается 4 случая.
Аноним 13/01/16 Срд 22:40:20 #247 №625093 
>>625030
ага
Аноним 13/01/16 Срд 22:42:52 #248 №625094 
>>625030
Кстати, нужно быть аккуратным с рекурсивными инлайновыми функциями. SBCL их пытается бесконечно подставлять, поэтому нужно использовать maybe-inline
Аноним 14/01/16 Чтв 00:07:07 #249 №625153 
14527192278450.png
>>624497
Добавил еще пару туториалов. Поправил макросы и еще по мелочи в предыдущих туториалах.
https://github.com/TatriX/cl-sdl2-tutorial
Аноним 14/01/16 Чтв 00:43:46 #250 №625177 
>>625153
Пришлось опять слать патч в мейнстрим, чтобы дальше делать туториалы. Хорошая все-таки штука, опенсурс.
Аноним 14/01/16 Чтв 01:44:59 #251 №625195 
14527251000240.png
>>625153
Еще парочка туториалов с очередным патчем в мейнстрим. Пока не смержили, если что.
Аноним 14/01/16 Чтв 02:32:41 #252 №625197 
>>625195
Я вот ракет изучаю и решил тоже заняться sdl.
Так, я застопорился с бесконечным циклом и обработкой событий.
Как мне с ним разобраться?
Аноним 14/01/16 Чтв 11:36:49 #253 №625334 
>>625197
Ну ты эта, код линкани что-ли.
Аноним 14/01/16 Чтв 14:15:05 #254 №625421 
Как мне сделать getf для своего класса?
Аноним 14/01/16 Чтв 14:52:50 #255 №625432 
>>625421
getf не полиморфный хотя в cl21 его сделали таковым, он только для plist'ов.
А зачем тебе? Уж не slot-value ли ты ищешь?
Аноним 14/01/16 Чтв 14:58:50 #256 №625437 
>>625432
Точнее, slot-value-using-class из MOP
Аноним 14/01/16 Чтв 14:59:06 #257 №625438 
>>625334
Я вот это юзаю.
https://github.com/cosmez/racket-sdl/blob/master/lazyfoo/lazyfoo01.rkt
Там же есть и либа.
Аноним 14/01/16 Чтв 15:04:48 #258 №625441 
>>625438
Жуть, да это ж голые биндинги. Неужели для рэкета получше ничего не нашлось?
Аноним 14/01/16 Чтв 18:25:26 #259 №625541 
Нашёл вакансию. Дерзайте, посоны: http://stackoverflow.com/jobs/104276/lisp-engineer-15-hr-100-remote-position-crossover?utm_source=stackoverflow.com&utm_medium=ad&utm_campaign=large-sidebar-orange-nearyou
Аноним 14/01/16 Чтв 18:36:38 #260 №625549 
>>625541
>JMail/JNI/ActiveX/ODBC
>MFC
Мне уже страшно
Аноним 14/01/16 Чтв 18:45:01 #261 №625560 
>>625441
>>625438
У петушиной схемы есть библиотека поудобнее http://wiki.call-cc.org/eggref/4/sdl2
Аноним 14/01/16 Чтв 20:51:28 #262 №625676 
>>625438
Где у тебя там цикл то?
Аноним 14/01/16 Чтв 20:52:54 #263 №625679 
>>625432
В результате сделал обычные функции. Мейнтейнер потом это все в макро завернул.

https://github.com/lispgames/cl-sdl2/commit/f8b5279519e48b771c70bedc9e81449aa6da2d43
Аноним 14/01/16 Чтв 21:18:40 #264 №625686 
>>625541
Ну что, кто-нибудь откликнулся?
Аноним 14/01/16 Чтв 21:33:48 #265 №625697 
14527964288790.png
Ну что, кому-нибудь нужен туториал по sdl на общелиспе?
Аноним 14/01/16 Чтв 21:35:57 #266 №625699 
>>625697
Сообществу лишним не будет. Заодно и косяки cl-sdl2 поотлавливаешь.
Аноним 14/01/16 Чтв 21:42:15 #267 №625709 
>>625699
Каждый туториал — один-два коммита.
https://github.com/lispgames/cl-sdl2/graphs/contributors
Аноним 14/01/16 Чтв 22:24:36 #268 №625755 
>>625676
Так вот я и хочу его сделать.
Аноним 14/01/16 Чтв 22:27:20 #269 №625758 
>>625755
У меня так: https://github.com/TatriX/cl-sdl2-tutorial/blob/master/3/main.lisp
Аноним 14/01/16 Чтв 22:53:13 #270 №625770 
>>625758
Да, я твой код смотрел, но в ракете вроде бы немного по другому.
Там в sdlвской функции в качестве аргумента принимается указатель на структуру.
Вот я не могу разобраться как его сделать.
Аноним 14/01/16 Чтв 23:09:01 #271 №625790 
>>625770
Ну хз, в cl-sdl2 используется обертка которая работает с сишными структурами. Зачем тебе эта схема, переходи на темную сторону силы.
Аноним 14/01/16 Чтв 23:11:08 #272 №625796 
>>625709
Ну, не удивительно, ведь он довольно сырой. Поэтому многие до сих пор пользуются lispbuilder-sdl.
>>625770
Попробуй make-_SDL-Event. А лучше найди нормальную библиотеку
Аноним 14/01/16 Чтв 23:13:27 #273 №625799 
>>625796
Или make-SDL-Event. Хуй знает, по какому принципу оно конструктору генерирует.
Аноним 15/01/16 Птн 00:00:11 #274 №625828 
>>625697
Я вот думаю, туториал туториалом, но тем кому нужен этот туториал надо сначала рассказать как поставить emacs spacemacs, sbcl, quicklisp. Это ж пиздец.

А те кто могут это все поставить сами, нужен ли им туториал?

Да и винды у меня нет вообще ни в каком виде, а это основная платформа аудитории как мне кажется.
Аноним 15/01/16 Птн 00:09:45 #275 №625839 
>>625790
>>625796
Да я к лиспу первый раз, так сказать, прикасаюсь.
Что там и как там у него - мне не ведомо.
Аноним 15/01/16 Птн 00:17:39 #276 №625844 
>>625839
PCL в зубы и вперде.
Аноним 15/01/16 Птн 00:23:02 #277 №625850 
>>625828
Ну, найти и поставить sdl2, sdl2-mixer, sdl2-image на шиндошс, потом ещё настроить IDE - тоже задача не из простых. Но, тем не менее, туториал на сишке существует.
Аноним 15/01/16 Птн 00:25:30 #278 №625852 
>>625850
Если ты про http://lazyfoo.net/tutorials/SDL/index.php то там подробно рассказывается как это все ставить для каждой ОС.
Аноним 15/01/16 Птн 00:33:27 #279 №625855 
>>625852
Надо же. Ну ок.

Кстати, нужно бы и нам запилить пособие по установке/настройке среды для лиспопрограммирования.
Аноним 15/01/16 Птн 00:50:33 #280 №625860 
>>625855
От автора CEPL
https://www.youtube.com/watch?v=VnWVu8VVDbI
Он кстати стесняша.
Аноним 15/01/16 Птн 00:57:07 #281 №625862 
>>625855
Кстати, не знаю как сейчас, но когда я изучал сишечку по книжкам уровня с++ за 21 день, самой сложной для меня ступенькой было начать пилить GUI софт. Тогда мне почему-то очень хотелось пилить гуй, и все консольные проекты уровня laba1.cpp вызывали острую резь в анусе. Обмазался Qt, сделал пару тулзовин для работы и охладел к этому делу, потому что погрузился во влажный и уютный мир консольки, вима и вообще линупса для жизни, а не для СМОТРИТЕ ПОСОНЫ, Я ПОСТАВИЛ ЛИНУПС,

Так вот, это я к чему все, начинающий анон, терзают ли тебя эти же вопросы или в 21 веке всем уже похуй?
Аноним 15/01/16 Птн 11:17:02 #282 №625995 
>>625541
Лол, мне только что из штатов хуй позвонил, спросил буду ли я делать тестовое задание.
Аноним 15/01/16 Птн 17:16:24 #283 №626228 
14528673845850.jpg
>>615102 (OP)
Анончики помогите долбоебу!
Clojure.
Суть такова, надо нааписать функцию, которая возвращает map вида {число :keyword}
но количество чисел неизвестно, известно что их 3 + некое рандомное количество (скажем до 3), то есть в одном случае ф-ция должна вернуть
{4 :X 7 :Y 12 :L 3 :Y } а в другом может
{7 :X 7 :Y 2 :L} или даже
{9 :Y 7 :Z 1 :L 3 :Y }

Cуть тут в том, что я не знаю, как правильно собрать такой map ведь он всегда разной длины.
Аноним 15/01/16 Птн 17:17:06 #284 №626229 
>>625995
>из штатов
>Lisp Engineer - $15/hr, 100% remote position
Crossover Moscow, Russia REMOTE
Аноним 15/01/16 Птн 17:52:20 #285 №626252 
>>626228
Тебе что-то типа этого нужно (apply assoc (mapcat (fn (key) (list key value) args)) ?
Если что, я кложуру не знаю.
Аноним 15/01/16 Птн 18:13:33 #286 №626262 
>>626229
Ты хоть бы посмотрел что к чему. Crossover это американская шарага занимающаяся подбором удаленных сотрудников.
Акцент у чувака который звонил был явно не русским.
Аноним 16/01/16 Суб 10:38:42 #287 №626586 
14529299227080.png
Отличный wm на общелиспе: https://github.com/stumpwm/stumpwm
Товарищи со #stumpwm на irc.freenode.net очень отзывчивы и помогут вкатится-настроится.

Видео слегка ускорено, но в целом все более менее понятно
https://www.youtube.com/watch?v=do0DVxy4HBc
Автор как раз сидит на вышеуказанном канале.
Аноним 16/01/16 Суб 11:39:18 #288 №626596 
>>626586
У стампвма ручной тайлинг. Был ещё один на лиспе с динамическим.
Аноним 16/01/16 Суб 12:54:23 #289 №626643 
>>626596
Правила настраиваешь для дефолтной конфигурации и все. Пока сидел на i3 почти не пользовался автотайлингом. Окно на весь экран, вот что нужно 99% времени.
Аноним 16/01/16 Суб 19:05:38 #290 №626957 
Какие различия между Scheme и Common Lisp?
Аноним 16/01/16 Суб 21:11:59 #291 №627033 
>>626957
Ты что наркоман штолее сука? Зачем ты набрасываешь?
Аноним 16/01/16 Суб 21:34:58 #292 №627054 
>>626957
Главное отличие CL в том, что он не нужен.
Аноним 16/01/16 Суб 23:40:15 #293 №627151 
>>627054
Ты че еба, схемка отлично подходит для обмазывания сиспом, но реальный софт писать — только общелисп.
Аноним 16/01/16 Суб 23:55:25 #294 №627162 
>>627151
нихуя, ракета рулез
Аноним 17/01/16 Вск 00:14:54 #295 №627176 
>>627162
Ну хуй знает
https://github.com/search?utf8=%E2%9C%93&q=stars%3A%3E1+language%3ARacket&type=Repositories&ref=advsearch&l=Racket&l=
Аноним 17/01/16 Вск 11:31:15 #296 №627387 
>>626957
Различий намного больше, чем может сначала показаться. Фактически, это два разных языка с разными идеологиями.
Если оценивать с точки зрения практичности, то, как по мне, схема в виду своей минималистичности годится только как язык для обучения или как встраиваемая скриптота, а для чего-то большего непригодна из-за разрозненности реализаций, несовместимости и без того немногочисленных библиотек, отсутствия эффективных реализаций (сталин умер; рэкет слишком жирный и тормозной; чикен не тестировал, но сомневаюсь, что компилирование через сишку может дать приемлемый результат).
Аноним 17/01/16 Вск 11:42:17 #297 №627394 
>>626957
Краткое сравнение от схемеров:
http://community.schemewiki.org/?scheme-vs-common-lisp
Аноним 17/01/16 Вск 11:46:46 #298 №627398 
Вопрос об оверхеде кложе. Если мне надо написать приложение, где генерятся массивы длинной более 10000, куча деревьев, множества, списки. И память будет этим забита полностью. Кложе тут норм выбор? Или можно упереться в JVM и в частности сборщик мусора?
Аноним 17/01/16 Вск 11:52:37 #299 №627399 
>>627394
>>626957
http://c2.com/cgi/wiki?LispSchemeDifferences
И ещё одно сравнение.
Аноним 17/01/16 Вск 12:02:17 #300 №627406 
>>627398
Точно сказать не могу, но думаю, что большого оверхеда быть не должно если при кодировании учитывать боксинги/анбоксинги, ленивость и т.д., всё-таки кложура довольно тесно интегрируется с жавой.
Так что, скорее всего, всё будет упираться в jvm.
Попробуй запилить бенчмарки.
Аноним 17/01/16 Вск 12:54:45 #301 №627424 
>>627398
https://benchmarksgame.alioth.debian.org/u64q/clojure.html
http://benchmarksgame.alioth.debian.org/u64q/lisp.html
https://drmeister.wordpress.com/2015/07/30/timing-data-comparing-cclasp-to-c-sbcl-and-python/ - CLASP, для размышления.

Как видишь разница невелика, но я бы всё равно не брал богомерзкую Clojure, потому что jvm.

Алсо, поясните, почему c SBCL такой медленный код?
Аноним 17/01/16 Вск 13:22:41 #302 №627434 
>>627424
>почему c SBCL такой медленный код?
Где распараллелено хуёво, где библиотека тормозная (cl-ppcre), а где и просто написано неэффективно.
Одно время этот тип http://swizard.livejournal.com/158763.html их переписывал, но потом забил. Вроде из-за того, что его код не приняли.
Аноним 17/01/16 Вск 13:44:10 #303 №627444 
>>627434
http://swizard.livejournal.com/167175.html
Аноним 17/01/16 Вск 18:00:25 #304 №627626 
>>625541
Ну таки шо посоны, отвечал им кто или нет?
Аноним 17/01/16 Вск 18:25:36 #305 №627641 
>>627626
Нет, конечно.
Аноним 17/01/16 Вск 19:30:28 #306 №627672 
>>627641
А почему?
Аноним 17/01/16 Вск 19:38:22 #307 №627675 
>>627672
>>625549
Мутные какие-то
Аноним 17/01/16 Вск 19:48:24 #308 №627679 
>>627675
Вакансия выглядит так, как их обычно составляют кадровики, что поделаешь.
Аноним 17/01/16 Вск 19:49:12 #309 №627680 
14530493521140.png
https://github.com/lispgames/lispgames.github.io/wiki/CommonLisp
#lispgames @ irc.freenode.net
Аноним 17/01/16 Вск 22:35:17 #310 №627788 
14530593174170.png
http://2ch.hk/s/res/1574001.html
Аноним 17/01/16 Вск 23:00:25 #311 №627806 
Кто-нибудь щупал?
https://github.com/kingcons/coleslaw
Аноним 18/01/16 Пнд 08:45:14 #312 №627990 
>>627806
И чем это лучше простого org-export-html?
Аноним 18/01/16 Пнд 11:11:01 #313 №628022 
>>627990
Понятия не имею, вот и спрашиваю.
Аноним 18/01/16 Пнд 12:34:53 #314 №628090 
Лиспаны, есть тут кто-нибудь с x86-64 и sbcl?
Аноним 18/01/16 Пнд 13:21:33 #315 №628123 
>>628090
Ну я.
Аноним 18/01/16 Пнд 13:24:32 #316 №628126 
>>628123
http://benchmarksgame.alioth.debian.org/u64q/program.php?test=nbody&lang=sbcl&id=2
Можешь скомпилить это у себя и дизассемблировать функцию advance?
Аноним 18/01/16 Пнд 14:45:46 #317 №628192 
>>628126
http://paste.org.ru/?r3snme
Аноним 18/01/16 Пнд 19:50:57 #318 №628435 
>>628192
>>628126
Ну так и че? Интересно же.
Аноним 19/01/16 Втр 09:12:58 #319 №628946 
>>628435
Ничего не вышло. Код оказался и без меня нормально заоптимизирован: к полям структуры обращение прямое, даблы боксятся только в одном некритичном месте. Но код для FPU, который мне сгенерировал sbcl на x86, выглядит немного туповато. Видимо, sbcl не слишком хорошо умеет оптимизировать использование стек регистров.
В этот >>628192 листинг пока ещё не вникал, но, кажется, выглядит чуть получше.
Сегодня попробую сравнить с вариантами на ocaml и rust.
Аноним 19/01/16 Втр 09:14:42 #320 №628947 
>>628946
>стека регистров
Пофиксил
Аноним 19/01/16 Втр 11:58:08 #321 №629030 
14531938887580.png
>>625697
Если что, я не дропнул, а продолжаю потихоньку пилить туториалы и саму библиотеку.
Мне, кстати, дали доступ пушить прямо в мастер ветку cl-sdl2, так что теперь могу нужные мне фиксы сразу заливать, а не ждать мержа пр.
Аноним 19/01/16 Втр 19:42:59 #322 №629387 
>>629030
https://github.com/TatriX/cl-sdl2-tutorial/blob/master/16/main.lisp#L74
А это никак в sdl:with-init не заталкивается?
Аноним 19/01/16 Втр 19:58:32 #323 №629404 
>>629387
Это отдельная библиотека. Если ты про мой макро, то заталкивается, да. Я код постоянно рефакторю по мере написания, так что это все еще 100 раз поменяется.
Аноним 20/01/16 Срд 13:24:52 #324 №630002 
14532854923120.png
lmao
Аноним 20/01/16 Срд 16:09:02 #325 №630132 
Что думаете по поводу REBOL'а и его продолжателя Red?
http://www.red-lang.org/
https://github.com/red/red
Аноним 21/01/16 Чтв 11:00:22 #326 №630878 
>>630132
Ничего не думаем. Зачем это?
Аноним 21/01/16 Чтв 12:27:16 #327 №630912 
>>630878
Это такой более универсальный лисп с более удобным синтаксисом.
Аноним 21/01/16 Чтв 14:13:02 #328 №630994 
>>630912
Чем тебе не нравится синтакс лиспа то? Он охуенен.
Аноним 21/01/16 Чтв 14:15:38 #329 №630996 
>>630994
Шумноват. На rebol/red edsl'и выглядят более натурально.
Аноним 21/01/16 Чтв 14:22:30 #330 №631000 
>>630996
Хз. Мне норм.
Аноним 21/01/16 Чтв 16:51:16 #331 №631113 
>>630996
развей мысль
Аноним 22/01/16 Птн 13:21:06 #332 №631856 
14534580667360.png
Пиздец, костыли на костылях. И зачем тогда надо было брать динамически типизированный язык, в котором ничего нет? Что-то странный какой-то курс, не могу понять, нравится он мне или нет.
Аноним 22/01/16 Птн 14:23:41 #333 №631899 
>>631856
Что это за говно?
Аноним 22/01/16 Птн 14:38:14 #334 №631910 
>>631856
Это в рекете-то ничего нет? Лол.
А что ты ищешь?
Аноним 22/01/16 Птн 15:41:45 #335 №631981 
>>631856
Хули ты хотел от лиспа? Не нравится - уебывай.
Аноним 22/01/16 Птн 17:48:59 #336 №632114 
>>631899
Курс по хтдп. Пока кажется, что эта книжка - такой же форс, как и сикп.
>>631981
Я хотел, чтобы меня обучили систематическому программному дизайну, а мне вместо этого рассказывают про тдд и как сымитировать строками и интами нормальные типы данных. А дальше там ещё веселее - делают адт через cond по типу. Жаль, не заскринил, теперь только до понедельника.
Аноним 22/01/16 Птн 20:37:01 #337 №632269 
>>632114
Я не знаю, что ты там за гайд читаешь. В ракете есть специальные макры для паттерн матчинга, а хуйню с твоего скрина какой-то джапидор писал походу.
Аноним 22/01/16 Птн 20:38:31 #338 №632271 
>>632269
> джавапидор
fix
Аноним 22/01/16 Птн 21:14:42 #339 №632309 
14534864828130.png
>>632271
>Джаджапидор
fix
Аноним 24/01/16 Вск 22:01:48 #340 №633626 
14536621087110.jpg
https://habrahabr.ru/post/275651/
Аноним 25/01/16 Пнд 18:47:28 #341 №634182 
http://www.youtube.com/watch?v=aKYzfew1pnE
Аноним 25/01/16 Пнд 20:27:53 #342 №634290 
>>633626
О, ты даже статью запил.
Аноним 25/01/16 Пнд 21:34:47 #343 №634349 
>>634182
Охуенно. Это parenscript там?
Аноним 25/01/16 Пнд 22:01:13 #344 №634366 
>>634290
Ага.
>>634349
Сам чуть струей не кончил.
Аноним 25/01/16 Пнд 22:22:50 #345 №634386 
>>634182
Кто-нибудь знает как называется автодополнение с видео? Хочу так же.
Аноним 25/01/16 Пнд 22:34:11 #346 №634394 
>>634386
Так это обычный слаймовый искоробочный.
Аноним 25/01/16 Пнд 22:42:05 #347 №634401 
>>634394
C-c TAB дефолтный хоткей.
Охуенно. Хочу такой же для всего.
Аноним 25/01/16 Пнд 22:44:16 #348 №634404 
>>634401
>Хочу такой же для всего.
Ты можешь helm заюзать: он универсальный и более удобный.
Аноним 25/01/16 Пнд 23:04:44 #349 №634422 
>>634404
Умел бы хелм показывать своё окошко поближе к курсоры, как company или autocomplete, цены бы ему не было.
Аноним 25/01/16 Пнд 23:17:04 #350 №634444 
>>634422
Если тебе нужно окошко как в company/ac, то их и используй. Есть slime-ac и company-slime, например.
Аноним 26/01/16 Втр 00:10:52 #351 №634477 
>>634444
Нет, я хочу чтобы helm-company выдавал варианты не в отдельном буфере хуй пойми где, а в окошке около курсора, как это делает обычно company.
Аноним 26/01/16 Втр 00:19:46 #352 №634479 
>>634477
Helm и есть программный интерфейс к тому отдельному буферу хуйзнаетгде.
А то, что ты хочешь, делает company и ac
Аноним 26/01/16 Втр 11:52:58 #353 №634649 
14537983790170.png
14537983790191.png
14537983790192.png
>>634479
1 пик: что делает company
2 пик: что делает helm (в соседнем буфере)
3 пик: что хочу я.
Аноним 26/01/16 Втр 12:53:31 #354 №634694 
>>634649
>>6346
Аноним 26/01/16 Втр 12:54:28 #355 №634696 
>>634649
И чем это, кроме внешнего вида, отличается?
Аноним 26/01/16 Втр 13:01:52 #356 №634703 
>>634696
Очевидно поведением?
company работает как дефолтное автодополнение, предлагая варианты с общим префиксом.
Ну а helm работает как helm.
Аноним 26/01/16 Втр 13:04:25 #357 №634704 
14538026651250.png
>>634703
Все замечательно, кроме того что автодополнение открывается хуй пойми.
Аноним 26/01/16 Втр 13:32:42 #358 №634716 
>>634703
А, так тебе fuzzy комплит нужен? Прикрути свой company-source
Аноним 26/01/16 Втр 13:35:30 #359 №634717 
>>634704
Как-то он у тебя и правда ебануто открывается.
Строка pattern должна быть прямо над окошком хелма, а она у тебя в минибуфере.
Аноним 26/01/16 Втр 13:52:59 #360 №634721 
>>634717
То что ввод спрашивают в минибуфере это ок. То что варианты открываются в соседнем буфере (обычно еще и поверх нужного мне буфера), не ок.
>>634716
Поподробней можно?
Аноним 26/01/16 Втр 14:10:06 #361 №634730 
14538066063270.png
>>634721
Он уже прикручен.
Аноним 26/01/16 Втр 14:37:05 #362 №634754 
>>634730
Для слайма есть, да. Выключе по дефолту:
(setq slime-company-completion 'fuzzy)

Смейсмакс?
Аноним 26/01/16 Втр 14:50:28 #363 №634767 
>>634754
>Смейсмакс?
Ага. Надоело пердолиться с конфигами
Аноним 27/01/16 Срд 00:29:37 #364 №635419 
>>634767
Prelude щупал? Почему именно на спейсмакс пересел?
Аноним 27/01/16 Срд 14:20:00 #365 №635718 
>>635419
>Prelude щупал?
Да, на него сначала и пытался перелезть. Сейчас уже не помню, что именно в нем хуже, чем в спейсмаксе.
>Почему именно на спейсмакс пересел?
Понравилась организация в виде слоев, однородность и гм.. древо-образность клавиатурных сочетаний и активное развитие. В общем, совсем другой уровень, уже не просто набор конфигов, а полноценная целостная надстройка над емаксом.
Аноним 28/01/16 Чтв 05:58:01 #366 №636542 
Ну что, Лейн-Луговские? Как жизнь?
Аноним 28/01/16 Чтв 11:15:22 #367 №636608 
>>636542
Нормально, предложили оффер на $125k/year.
Единственное, просят релокацию, поэтому сижу думаю.
Аноним 28/01/16 Чтв 11:42:05 #368 №636624 
>>636608
Это чем это таким надо будет заниматься за 125 в год? Ебать страшную труп-тян директора?
Аноним 28/01/16 Чтв 11:52:36 #369 №636629 
14539711570400.jpg
>>636624
Пиздеть на дваче.
Аноним 30/01/16 Суб 16:21:03 #370 №638475 
https://2ch.hk/gd/res/211718.html
()()()
Аноним 30/01/16 Суб 17:14:40 #371 №638536 
>>638475
Будешь участвовать?
Аноним 30/01/16 Суб 17:24:29 #372 №638542 
>>638536
хз. Если вдруг соверешенно случайно придет в голову хорошая идея которую я смогу сделать за неделю, то наверное да. Но я безыдейное говно, поэтому вряд ли.
Аноним 30/01/16 Суб 17:25:35 #373 №638544 
>>638542
>Но я безыдейное говно, поэтому вряд ли.
Та же хуйня.
Аноним 30/01/16 Суб 17:29:14 #374 №638550 
>>638544
Если быть точным, то идею худо можно высратьспиздить, но временное ограничение в неделю на реализацию означает что нужно сделать просто. А просто и интересно это дохуя сложно. Увы.
Аноним 31/01/16 Вск 13:52:53 #375 №639235 
(define (: a b c) (b a c))
Удивительно, как простая функция может сделать из ЭТОГО язык программирования.
>>638550
Две. За две недели даже я успеваю говна наваять.
Аноним 31/01/16 Вск 16:13:30 #376 №639340 
>>639235
Без хоть какого-нибудь опыта в игроделии только говна и успеешь наваять.
Аноним 31/01/16 Вск 17:14:19 #377 №639433 
>>639340
/гд - это такой /пр про игры. Сидят нихуя не умеющие школьники и студенты и разговаривают про индустрию.
Аноним 01/02/16 Пнд 23:17:29 #378 №640704 
14543578497570.png
Лол, мне тут фанарт запилили. Жалко, что я в лиспах дальше (princ (+ 2 2)) не зашел.
Аноним 01/02/16 Пнд 23:19:33 #379 №640710 
>>640704
RFC какой-то на фоне?
Аноним 01/02/16 Пнд 23:26:22 #380 №640722 
>>640710
Понятия не имею. Говорю же — фанарт.
Аноним 02/02/16 Втр 01:38:28 #381 №640846 
>>616528
Кто Кавой и Гуашью пользуется, расскажите, как оно. Я, вот, пробовал GNU Guile и Gambit Scheme, так там библиотек нихуя нету.
Аноним 02/02/16 Втр 04:45:00 #382 №640899 
>>640846
>так там библиотек нихуя нету.
А ты что хотел? Это ж схема. Скажи спасибо чистоте и минимализму за разрозненность реализаций.
Аноним 02/02/16 Втр 15:07:14 #383 №641139 
>>640899
Так что, у всех кроме Рэкета и Петуха ситуация одинаковая?
Аноним 02/02/16 Втр 15:12:03 #384 №641143 
>>641139
Скорее всего.
Аноним 02/02/16 Втр 16:57:57 #385 №641221 
>>641143
Ладно. Тогда такой вопрос: у кого из более-менее известных Схем удобнее всего FFI к C? И сразу еще один: стоит ли сейчас страдать хуйней со Схемой, или лучше сразу переползать на КЛ или Clojure? Я интересуюсь, потому что Схему знаю, даже в передачу продолжений могу, а КЛ/Clojure - нет.
Аноним 02/02/16 Втр 17:16:40 #386 №641236 
>>641221
> у кого из более-менее известных Схем удобнее всего FFI к C?
Я не схемер, но, думаю, у chicken должно быть хорошо с FFI. Всё-таки он через сишку компилируется.
Для сравнения могу посоветовать поглядеть общелисповский CFFI.
>стоит ли сейчас страдать хуйней со Схемой, или лучше сразу переползать на КЛ или Clojure?
Зависит от того, что ты собираешься писать. Возможно, общелисп и правда окажется более подходящим.
sageАноним 02/02/16 Втр 17:20:11 #387 №641238 
Самый ненужный тред на этом форуме.
Аноним 02/02/16 Втр 17:22:31 #388 №641242 
>>641238
Где можно забрать нашу награду?
sageстандартно Аноним 02/02/16 Втр 17:23:30 #389 №641245 
>>641242
У себя за щекой проверь.
Аноним 02/02/16 Втр 17:24:05 #390 №641246 
>>615102 (OP)
Скрипты:
(применяются для обучения, администрирования и лепки гостевух, но есть и единичные примеры использования не по назначению, для написания программ. Вместо программы, впрочем, получается гигантский скрипт на выброс)

LISP (скобочное говно) — один из самых старых скриптов, до начала семидесятых даже использовавшийся в качестве эрзац-ЯП, за неимением ничего лучшего. На заре его существования был игровой площадкой для монстров CS, которые вскоре положили на него хуй и пошли лепить алгол. Последний крупный проект (то, что сейчас называется Axiom/Open CAS) стартовал в 70-ом году. В настоящее время форсед-мем школьников и первокурсников. Типичный скобкошлеп берет деньги у мамы.
Scheme — скобочное говно, сделаное правильно. К алголу приделали скобки и получился лучший скрипт для обучения первокурсников и, возможно, лучший скрипт вообще, но в этом имеет сильного соперника. Типичный схемоеб получает стипендию и денежные переводы от мамы из Крыжополя.
* SmallTalk — скрипт, придуманый для обучения программированию детей-дибилов и лучший скрипт всех времен и народов. IBM решили, что для индустрии это как раз то, что надо и пытались его пропихнуть. FIAL. Тем не менее, индустрия таки заразилась от него всеми спидами. Баззворды «ООП», «паттерны проектирования», «юнит-тесты», «рефакторинг», «MVC», да и все остальные пришли в мейнстрим из смолтока. Типичный смолтокоеб на работе пишет на жабе.

Не смотря на то, что схемка и смолток делают остальные скрипты совершено ненужными, массы динамических петушков выбирают ПЫХОПЛЕЯДУ (Perl, PHP, Python, Ruby).
ПЫХОПЛЕЯДА — это высеры ГСМ-ов и неграмотных долбоебов, которые проделали большую работу изобретя колесо (квадратное) — чукча не читатель, блеать. Пыхоплеяда состоит из протопыха (слишком приподвыподвернут для петушков, известно, что новейшую версию первоначально удалось реализовать только на хаскеле), пыха — классика гостевушного жанра, гвидопыха и джапопыха. При этом, если гвидопых отличается от пыха только ЧСВ гвидопыхеров, упивающихся своей невъебенной илитностью, и наличием у хуесосов харизматичного фюрерка, то джапопых действительно несколько более продвинут, и в мокрых фантазиях джапопыхеров является смолтоком.
Знатоки пыхоплеяды лепят гостевухи за доширак и заправляют картриджи.
Аноним 02/02/16 Втр 17:28:30 #391 №641251 
>>641246
>Scheme
>К алголу приделали скобки
Толстовато.
Аноним 02/02/16 Втр 17:29:33 #392 №641252 
>>641236
>общелисповский CFFI
А он стандартизирован?
>что ты собираешься
Минимум - это бизнес-логику, которая должна одинаково работать одинаково везде: на сервере, на стационарных клиентах и на мобильных устройствах. Поэтому нужен простой и портативный язык. Остальное можно писать и не на нем, но, конечно, хотелось бы.
Аноним 02/02/16 Втр 17:36:57 #393 №641256 
14544238177330.png
>>641252
Эээ, "одинаково работать везде".

медленнофикс
Аноним 02/02/16 Втр 18:47:01 #394 №641317 
>>641252
>А он стандартизирован?
Де-факто. Поддерживаются все основные реализации, за исключением, может быть, ABCL.
>Минимум - это бизнес-логику
>простой и портативный язык.
На роль простого и встраиваемого языка больше подходит схема (chicken или guile, например, две последние буквы которого расшифровываются как Language for Extensions). У CL же большинство реализаций вообще не встраиваются. Исключение - ECL, который компилирует в сишку и который менее совместим с остальными реализациями, и некоторые коммерческие реализации.
Аноним 02/02/16 Втр 21:23:04 #395 №641409 
>>641252
>простой и портативный язык
Для этого есть Lua, JavaScript, да и Java, в конце концов.
Аноним 02/02/16 Втр 21:25:43 #396 №641410 
>>641409
>JavaScript
Толсто.
>да и Java
Очень толсто. Даже Common Lisp в большей мере "простой и портативный", чем ява.
Аноним 02/02/16 Втр 21:33:30 #397 №641417 
>>641410
>Толсто.
https://github.com/gfwilliams/tiny-js
http://duktape.org/
>Очень толсто
Сервер, десктопы и Андроид искаропки, iOS - через RoboVM. Что еще нужно?
Аноним 02/02/16 Втр 21:34:58 #398 №641419 
>>641417
>Что еще нужно?
Простота и портативность. А ещё хоть какая-то выразительность, а то этак и на ц с крестами писать можно.
Аноним 02/02/16 Втр 21:41:25 #399 №641425 
>>641419
>выразительность
С этим согласен. Но! Очень много языков компилится в Java 7-совместимый байт-код, даже Clojure. Правда, на мобилках он запускается и работает медленно. Лучше Kotlin.
Аноним 02/02/16 Втр 21:42:52 #400 №641426 
>>641425
>Правда, на мобилках он запускается и работает медленно.
Ещё бы оно не тормозило с такой-то еблей с dex'ами.
Аноним 02/02/16 Втр 21:53:01 #401 №641437 
>>641417
И чем это лучше схемы?
>>641425
>Лучше Kotlin.
Очередная мертворожденщина типа груви.
Аноним 03/02/16 Срд 02:31:33 #402 №641564 
>>641437
В Duktape, по крайней мере, работают очень многие JavaScript'овские библиотеки, написанные для Node.js или браузера.
Аноним 03/02/16 Срд 10:27:28 #403 №641647 
>>641419
hscript
Аноним 03/02/16 Срд 11:51:27 #404 №641695 
>>641256
Dylan охуенно выглядит. Жаль, что его использует чуть более чем нигде, хуже даже чем Лисп.
Аноним 03/02/16 Срд 16:42:46 #405 №641974 
>>641695
Если уж говорить про "охуенно выглядит", то тут стоит упомянуть ребол
Аноним 03/02/16 Срд 16:45:16 #406 №641978 
>>641564
Странные эти люди. С одной стороны пытаются всё сделать, лишь бы на явоскрипте не писать (изобретают кофе-, кложуроскрипты, елмы), а с другой стороны пихают этот недоязычок во все щели без разбору.
Аноним 03/02/16 Срд 17:22:12 #407 №642007 
>>641695
Надо бы его добавить в шапку следующего ОПа.
Аноним 03/02/16 Срд 19:10:33 #408 №642098 
>>642007
Да и вообще шапку бы надо переделать. Кто-то в начале треда предлагал с нуля запилить, но тем всё и закончилось.
Аноним 03/02/16 Срд 20:00:58 #409 №642129 
>>641974
Согласен, тоже радует глаз.
Аноним 03/02/16 Срд 20:03:58 #410 №642131 
>>642129
Следишь за Red? Они там уже VID для ведроида допиливают
Аноним 03/02/16 Срд 20:08:47 #411 №642136 
>>642131
Не, у меня времени нет, а на работе только на Пистоне пишу.
Аноним 04/02/16 Чтв 00:36:42 #412 №642295 
14545354028850.png
http://twg7.blogspot.ru/2016/02/blog-post.html
Леплю императивную парашу.
Аноним 04/02/16 Чтв 00:41:23 #413 №642296 
>>642295
Какую-то карточную йобу?
Аноним 04/02/16 Чтв 01:01:06 #414 №642306 
14545368663810.png
>>642296
Ага, хартстоун про скобки.
Один из игроков в мою другую игрушку подрядился мне графоний рисовать, лол. Первые наброски.
Аноним 04/02/16 Чтв 01:03:43 #415 №642308 
>>642306
Охуенно.
Аноним 04/02/16 Чтв 01:13:14 #416 №642314 
>>642295
>>642306
Если что я делаю это в прямом эфире: http://www.twitch.tv/tatrics
Щас правда уже закончил, потому что нужно работу работать, а то и так уже сижу бомж пакет жру.
Аноним 05/02/16 Птн 18:47:54 #417 №643915 
>>642306
Сука, это просто невозможный пиздец.
Пол дня, блять, пытался завести это говно на злоебучей винде. Нихуя. Вообще по нулям. КАЖДАЯ сука операция завершается миллиардом ошибок. Говно гроб гроб кладбище пидор.
Я уж не говорю что в саомй винде любое действие заставляет себя чувствовать кастрированным одноглазым одноногим одноруким крабоговнообсоском.
Аноним 05/02/16 Птн 22:13:13 #418 №644269 
>>643915
С чем именно проблемы? grovel?
Аноним 05/02/16 Птн 22:19:52 #419 №644273 
>>644269
Т.е. не гровел, а их велосипед - autowrap
Аноним 06/02/16 Суб 12:14:05 #420 №644786 
>>644269
>>644273
С горем пополам собрал. Так теперь эта блядина в рантайме сразу валится без стектрейса с ошибкой уровня "Unknown alien function call"
Аноним 06/02/16 Суб 12:17:46 #421 №644791 
14547502668910.png
>>644786
Аноним 06/02/16 Суб 16:20:50 #422 №644982 
>>644791
>>644786
>>644273
>>644269
>>643915
Вот так и начинаешь понимать, почему Рик Хикки выбрал JVM как платформу для Clojure.
Аноним 06/02/16 Суб 16:54:26 #423 №645027 
>>644982
Думаешь, с jni проблем меньше? Ошибаешься.
Аноним 06/02/16 Суб 18:14:17 #424 №645134 
>>644982
У вас неправильная версия JAVA(TM) СКАЧАЙТЕ НОВУЮ ВЕРСИЮ ИНАЧЕ ВЫ ХУЙ.
Аноним 07/02/16 Вск 23:14:03 #425 №646662 
>>644786
Так ты забросил игру что ли? Я тут на семерочке cl-sdl2 из гита попробовал: всё само собралось и даже запустилось без всяких проблем (basic-test запускал).
Ты уверен, что у тебя версии sdl совпадают?
Аноним 08/02/16 Пнд 12:16:22 #426 №646937 
>>646662
Проблема в sdl-ttf который тупо не работает. Если осилишь собрать, я может даже успею до 10 числа демку доделать. Я и так уже три дня проебал на попытки заставить это дерьмо работать, собрал все библиотеки руками и хуй.
Была последняя надежда на 64 битную винду, но пошла она в пизду.
Аноним 08/02/16 Пнд 12:18:18 #427 №646939 
>>646937
Точнее он собирается, но в рантайме вылетает с "unknown alien function" на sdl-ttf:init
Автор либы в чатике меня игнорит, а самому ковырятся с этим дерьмом у меня времени нет, проект еще сдавать сегодня.
Аноним 08/02/16 Пнд 15:43:25 #428 №647080 
Чем лишп удобнее обычных декларативных языков? В частности, чем кложура удобнее явы и до-диеза для непосвященных?
Аноним 08/02/16 Пнд 18:13:34 #429 №647219 
14549444142410.png
Сука проебал текст поста. Похуй.
http://www.parens-of-the-dead.com/
Аноним 08/02/16 Пнд 18:29:06 #430 №647226 
>>647080
С каких хуев жаба стала декларативной?
Аноним 08/02/16 Пнд 19:32:47 #431 №647269 
>>647226
Каюсь, перепутал. Имел в виду императивное.
Аноним 08/02/16 Пнд 20:08:42 #432 №647307 
>>646937
Завтра погляжу, что с ней не так.
sageАноним 08/02/16 Пнд 20:29:42 #433 №647317 
Аноны, нашел в спеке по лиспу линк на такую книжку 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
Если умею в английский, она сгодится для старта в лиспе?
Аноним 08/02/16 Пнд 20:30:02 #434 №647318 
>>647317
сорри, приклеилась
Аноним 08/02/16 Пнд 20:45:36 #435 №647325 
>>647317
Да, вполне хороша.
Хотя мне PCL больше понравился.
Аноним 08/02/16 Пнд 23:15:01 #436 №647428 
Проиграл в голосину.
http://www.youtube.com/watch?v=kK8_j1oxX7k
Аноним 09/02/16 Втр 11:49:30 #437 №647735 
>>646939
>но в рантайме вылетает с "unknown alien function" на sdl-ttf:init
https://github.com/Failproofshark/cl-sdl2-ttf/blob/master/src/library.lisp#L3
Имя dll-ки для шиндошса не определено, поэтому ничего не подгружается. В остальном всё работает, хоть и пришлось немного поебаться с установкой mingw для гровела и, внезапно, с поиском собранной libffi.
Ещё оказалось, что окно не создается, если запускать sbcl изпод емакса.
Аноним 09/02/16 Втр 11:50:50 #438 №647737 
>>647735
Добавить нужно что-то вроде:
> (:windows "SDL2_ttf.dll")
Аноним 09/02/16 Втр 12:18:02 #439 №647759 
>>647080
Ну, например, поддержкой т.н. интерактивной разработки, когда ты можешь писать код и сразу же его компилировать прямо в рантайме работающей программы.
Аноним 09/02/16 Втр 13:11:42 #440 №647810 
>>647735
Попробую.
Два дня ебался с этим дерьмом сам, а потом нашел msys2.
Аноним 09/02/16 Втр 13:34:30 #441 №647843 
>>647735
>>647737
Подсунул ему библиотеку.
Запускаю (ttf-examples:basic-example)
и ничего. Тупо все намертво виснет.
Аноним 09/02/16 Втр 13:35:13 #442 №647845 
>>647843
>Тупо все намертво виснет.
Изпод емакса запустил sbcl что ли?
Аноним 09/02/16 Втр 13:36:39 #443 №647847 
>>647843
Выключил в примере :accelerated вроде просралось.
Аноним 09/02/16 Втр 13:38:12 #444 №647848 
>>647845
Блять, злоебучая винда
1) Запускает sbchost который грузит систему на 100%
2) Запускает TrustedInstaler.exe который грузит систему на 100% и НЕ УБИВАЕТСЯ
3) Говорит что если я её не ребутну для накатывания апдейтов, она сделает это сама.

Как они это говно вообще жрут, ссссука???!
Аноним 09/02/16 Втр 13:40:08 #445 №647852 
14550144088140.png
>>647845
Запустил из под cmd.exe
Результат тот же.
Аноним 09/02/16 Втр 13:47:56 #446 №647858 
>>647852
Могу у себя потестить, если код скинешь.
Алсо, попробуй на ccl ещё проверить. В sbcl, помнится, одно время была кривая поддержка шиндошса.
Аноним 09/02/16 Втр 13:49:08 #447 №647860 
>>647858
https://github.com/TatriX/lispstone
Пробовал на clisp и еще в чем-то. Там вообще пиздец.
Аноним 09/02/16 Втр 13:51:42 #448 №647862 
>>647737
Заслал пулреквест в апстрим.
Аноним 09/02/16 Втр 15:09:36 #449 №647964 
>>647852
А у меня завелось.
Аноним 09/02/16 Втр 15:11:18 #450 №647966 
>>647964
Ну охуеть. Ебани скрин чтоли?
Аноним 09/02/16 Втр 15:11:37 #451 №647968 
>>647964
Алсо у тебя x86 или x64?
Аноним 09/02/16 Втр 15:13:35 #452 №647970 
>>647964
>>647852
На ccl, правда. Под sbcl почему-то квиклисп внезапно сломался.
Аноним 09/02/16 Втр 15:17:47 #453 №647976 
14550202671860.png
>>647966
Аноним 09/02/16 Втр 15:18:05 #454 №647977 
>>647968
X86
Аноним 09/02/16 Втр 15:24:19 #455 №647987 
У тебя libffi не от cygwin случайно?
Аноним 09/02/16 Втр 15:41:44 #456 №648003 
>>647976
Собери exe?
>>647987
Я руками собирал. Только с ним вообще хоть как-то запускается.
Аноним 09/02/16 Втр 15:46:22 #457 №648007 
>>648003
Попробуй эту ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libffi_3.0.6-1_win32.zip
Аноним 09/02/16 Втр 15:47:11 #458 №648008 
>>648003
Собрать вечером могу, сейчас я с ведра.
Аноним 09/02/16 Втр 15:51:02 #459 №648013 
>>647852
>libpng.tar.xz
Ты все либы сам собирал что ли? libpng и остальные тут есть http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.14-win32-x86.zip
Аноним 09/02/16 Втр 15:55:32 #460 №648021 
>>648013
Тьфу, не та ссылка. Я имел в виду sdl-image
Аноним 09/02/16 Втр 16:07:12 #461 №648027 
14550232329530.png
>>648013
Все что было собранным, брал собранным.
Блять, как же у меня пригорает с этого дерьма.
Аноним 09/02/16 Втр 16:09:47 #462 №648029 
14550233877930.png
>>648027
А, все это я забыл сраные dll от sdl_image допихать.
Аноним 09/02/16 Втр 16:12:20 #463 №648034 
>>648029
Ну во! Теперь мож и под sbcl заработает?
Аноним 09/02/16 Втр 16:24:09 #464 №648054 
14550242494220.png
>>648034
О да.
Надо теперь сделать нормальный main loop, а то я там влепил слип в цикле, потому что sdl2kit в треде запускается.
Аноним 09/02/16 Втр 16:24:27 #465 №648055 
>>648054
Хотя похуй, для демо и так сойдет.
Аноним 09/02/16 Втр 16:29:04 #466 №648062 
>>648054
Ты хоть :compression t добавь, чтоб жури от размера бинарника не охуевали.
Аноним 09/02/16 Втр 16:41:11 #467 №648072 
>>648062
17 метров архив вышел. Щас попробуем твой флаг.
Аноним 09/02/16 Втр 16:42:47 #468 №648075 
>>648072
С ним бинарники обычно по ~15мб и получаются.
Аноним 09/02/16 Втр 16:42:52 #469 №648076 
>>648072
>Unable to save compressed core: this runtime was not built with zlib support
В пизду. На фоне юнити 17 метров не так и много.
Аноним 09/02/16 Втр 16:43:40 #470 №648077 
>>648076
http://tatrix.org/public/games/lispstone.zip
Аноним 09/02/16 Втр 16:44:24 #471 №648080 
>>648076
ccl, кстати, бинари поменьше делает, но он и код генерирует чуть менее эффективный.
Аноним 09/02/16 Втр 16:48:30 #472 №648085 
>>648080
Теперь осталось самое просто: сделать игру, лол.
Аноним 09/02/16 Втр 16:50:49 #473 №648089 
Кстати, решил тут еще opengl'ем обмазаться, когда уж совсем все настоебет. Вот по этой книжке:
http://web.archive.org/web/20140212105533/http://www.arcsynthesis.org/gltut/index.html
конвертирую туториалы в https://github.com/TatriX/cl-gl-tutorials
Аноним 09/02/16 Втр 16:51:06 #474 №648090 
>>648085
Ещё ж неделя целая. Я вот начинал пилить, но забросил. Фантазии на сюжет и геймплей не хватило.
Аноним 09/02/16 Втр 16:52:39 #475 №648095 
>>648090
Геймплей не нужен. Как и сюжет. УДАЧА же.
Аноним 09/02/16 Втр 17:08:01 #476 №648112 
>>648077
Короче это дерьмо работает только на софтверном рендеринге под виндой. Я хз почему.
Аноним 09/02/16 Втр 17:12:49 #477 №648121 
>>648112
У тебя и пример из sdl-ttf тоже только без accelerated завелся? Если да, то видимо драйвера виноваты, а не винда, потому что у меня он работал.
Аноним 09/02/16 Втр 17:13:35 #478 №648123 
>>648121
Да.
Заслал товарищу с нормальной виндой. У него тоже виснет.
У тебя работает?
Аноним 09/02/16 Втр 17:14:45 #479 №648126 
>>648123
Ну да. Я код примеров не трогал.
Аноним 09/02/16 Втр 17:15:24 #480 №648128 
>>648126
Я про мой высер: >>648077
Аноним 09/02/16 Втр 17:34:14 #481 №648148 
>>648128
Лень было на винде проверять, поэтому запустил под вайном. Работает.
Думаю, на настоящей тем более должно работать.
Аноним 09/02/16 Втр 17:37:59 #482 №648153 
>>648128
И ещё, проверь у себя пути к ресурсам. Вайн на них ругался:
>#<THREAD "SDL2 Main Thread" RUNNING {254D2F29}>:
> SDL Error (#<TTF-FONT {#X00000000}>): Couldn't open Z://assets>/DejaVuSans.ttf
Хотя возможно, это его баг.
Аноним 09/02/16 Втр 17:44:46 #483 №648165 
>>648153
Это баг. Образ лиспа запомнил путь полученный через (asdf/system:system-source-directory :twg)
Переделала на относительный путь, должно прокатить.
Аноним 09/02/16 Втр 17:56:09 #484 №648183 
>>648165
>Переделала
Ты знаешь правила.
Аноним 09/02/16 Втр 17:56:47 #485 №648184 
>>648183
Лол. Очевидная опечатка же
Аноним 09/02/16 Втр 17:59:13 #486 №648187 
>>648184
Да не ебёт меня. Сиськи показывай.
Аноним 09/02/16 Втр 18:02:50 #487 №648190 
14550301705650.png
>>648187
Вот вам мои сиськи с супом.
Аноним 09/02/16 Втр 18:05:24 #488 №648196 
>>648190
Блять как же жрать то охота, пиздец.
Экзешник 51 метр.
Экзешник+все либы в зипе = 17 метров.
Аноним 09/02/16 Втр 18:20:28 #489 №648212 
>>648196
Попробуй (gc :full t) перед сохранением образа. Должно меньше получиться.
Аноним 09/02/16 Втр 18:37:46 #490 №648235 
>>648212
Да похуй же.
Аноним 09/02/16 Втр 21:19:44 #491 №648429 
Сложно ли выучить и понять лисп? Если я сделаю это, изменит ли он мои взгляжы на программирование в целом? Поможет ли улучшить подход к использованию других ЯП?
Аноним 09/02/16 Втр 21:27:53 #492 №648434 
>>648429
Нет. Да. Да.
Аноним 09/02/16 Втр 21:28:38 #493 №648435 
14550425181510.png
Кстати вот еще в шапку
http://learnlispthehardway.org/
Аноним 09/02/16 Втр 21:30:57 #494 №648439 
Вот что меня раздражает, так это необходимость файлик цеплять в
:files
Можно это как-то упростить?
Аноним 09/02/16 Втр 21:37:13 #495 №648444 
>>648435
Выглядит интересно, но она же полупустая ещё.
Аноним 09/02/16 Втр 21:41:57 #496 №648454 
>>648439
В asdf что ли? А что за проблема перечислить, ведь их не так много?
Вообще, asdf вроде бы умеет в glob-шаблоны или что-то похожее.
Аноним 09/02/16 Втр 22:23:54 #497 №648517 
>>648454
хз, заебывает делать руками то, что комп по идее должен делать сам.
Как оно с глобом разрулит порядок загрузки?
Что кстати тоже заебывает. Не хочу думать о порядке функций в файлике. А точнее обычно хочу сделать его обратным, чтобы используемая функция шла после использвания.
Аноним 09/02/16 Втр 22:39:33 #498 №648527 
>>648517
>хз, заебывает делать руками то, что комп по идее должен делать сам.
Прикрути к емаксу такую функцию. К какому-нибудь projectile. Хотя по-моему нет никакой сложности добавить (:file "file") руками.
>Как оно с глобом разрулит порядок загрузки?
Никак.
>Не хочу думать о порядке функций в файлике.
А разве нужно? В любом случае, в такой сортировке нет ничего плохого, т.к. она упрощает отслеживание зависимостей.
Аноним 10/02/16 Срд 00:29:42 #499 №648594 
>>648527
По мне так наоборот, лучше читается сверху вниз. Ну тип
(defun a()
;;;;(b))
(defun b ()
;;;;(fuck))
Как книжку читаешь.
Аноним 10/02/16 Срд 19:30:02 #500 №649274 
http://www.youtube.com/watch?v=7V9TF2qx1_8
Аноним 10/02/16 Срд 20:02:47 #501 №649333 
Пора перекатываться
ПЕРЕКАТ Аноним 10/02/16 Срд 20:10:38 #502 №649347 
>>649344 (OP)
>>649344 (OP)
>>649344 (OP)
>>649344 (OP)
>>649344 (OP)
>>649344 (OP)
>>649344 (OP)
comments powered by Disqus

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