Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость. Основные диалекты— 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
Добавлю еще: http://exercism.io/languages/elisp
>>615238Это, кстати один из самых популярных диалектов лиспа.
>>615245Откуда статистика такая?
У кого-нибудь есть предложения по реструктуризации и повышению читабельности шапки или замечания по её содержимому?
>>615250http://githut.info/
>>615264У меня. Это говно читать вообще невозможно.Предлагаю все нахуй выкинуть и сделать заново.
>>615276Начать шапку надо с того нахуя мимокрокодилу вообще может понадобится лисп.Затем краткий обзор какие лиспы есть, и какой выбрать мимокрокодилу.
>>615280А вообще предлагаю начать форсить Единственный Верный Лисп: Общелисп.
>>615280>Затем краткий обзор какие лиспы есть, и какой выбрать мимокрокодилу.А потом какие реализации, какие книги, какие IDE, какие библиотеки.
>>615276>Это говно читать вообще невозможно.А что именно не так?>Предлагаю все нахуй выкинуть и сделать заново.Сделай так, как тебе кажется лучше.А лучше, предлагай варианты исправления текущего.
Аноны, вам тоже SICP сначала трудно давался, или я такой ТУПОЙ? Не могу до конца въехать в тему "вычисление квадратного корня по методу Ньютона", точнее я въехал, но вот с упражнениями большая проблема, пришлось гуглить ответы и понимать.
>>615316Это нормально. Что не понятно пропускай, а потом можешь вернуться.Помню, как я изучал программирование по единственной найденной тогда книге - совковый учебник по сишке. Зачем нужны функции и почему они должны возвращать значение понял только при повторном перечитывании.
>>615316SICP простой. По крайней мере первая половина.
>>615316Если не сталкивался с численными методами, то это нормально, дальше там ближе к обычному программированию а не к математикеЕще можешь посмотреть htdp.org, который кстати неплохо бы добавить в шапку
Это снова анон с SICP. Вот задача из книги : http://puu.sh/mdndO/4b9e8f8d1c.pngМоё решение : http://puu.sh/mdnaS/e2527ee56c.pngПочему не работает, все же хорошо написано?
>>615495Как ты в этом пиздеце работаешь? Код же хуй прочтешь.>Почему не работаетУ тебя cube-iter требует два аргумента, но внутри функции ты вызываешь её с одним.
>>615458Нуднятина адская. Прочил 5 или 6 глав, дальше не смог.
>>615518Точно, спасибо, а какую среду тогда посоветуешь, я кроме гамбита ничего и не юзал.
>>615567E. M. A.C. S.
>>615567drracket или, если с емаксом в ладах, то емакс
Гайз, гайз! А что насчет превратить CL из lisp-2 в lisp-1?https://ideone.com/tyhO4I
>>615671Думаешь нужно?
>>615671А как насчет [code lang=scheme]((lambda (x) (x x)) (lambda (x) (x x)))[/code]?
>>615677Забавно. (setf (cdr x) x) тоже ничего.>>615676Если серьезно, то ни одного аргумента в пользу отдельного неймспейса для функций я для себя придумать так и не смог.
>>615684>Забавно.Я про то, что лямбду по значению без funcall не вызовешь.
>>615684Ну единственный аргумент — переменные с именем совпадающим с именем функции. Это часто случается, но не могу сказать что это достаточная причина для разделения пространств имен.
>>615691Ты лучше скажи: а есть ли причины объединения их?По-моему, идеи Lisp-N правильные: под разные типы данных - разные слоты у символа.
>>615694В прошлом треде был линк на обстоятельный разбор этого спора.http://www.nhplace.com/kent/Papers/Technical-Issues.htmlПрочитай, потом поговорим.
>>615695И что? Я видел это. Не считаю, что у пакетов, функций, переменных, неба и даже Аллаха должно быть одно пространство имен. Раздельное выглядит куда логичнее.
>>615699Если писать функциональщину с колбеками, то обмазываться funcall не очень приятно
>>615702Ну, без лени, паттерн-матчинга и вывода типов тоже особо не попишешь.
>>615707И без ADT
>>615702Кстати, если уж пишешь на cl в функциональном стиле, то больше всего неудобств доставляет отсутствие сечений, композиции и уже упомянутого сопоставления с образцом, а не функалы.
>>615713Что за сечения?
>>615723Частично примененные функции. Кажется, именно так они и назывались.
>>615729Каррирование то? Не слышал термина сечение.
>>615734>Каррирование то?Нет, вот это каррирование:(lambda (x y) (f x y)) => (lambda (x) (lambda (y) (f x y)))а это сечение или частичное применение:(f x) => (lambda (y) (f x y))
>>615713>лени, паттерн-матчингаРеализуется на макросах, как и каррирование и композиция.>вывода типовИ как оно должно выглядеть, с динамической-то типизацией?
>>615747>Реализуется на макросахЛень с ручными delay/force и без поддержки со стороны стандартной библиотеки? Костыльно и неюзабельно. Поэтому ею никто и не пользуется.С паттерн-матчингом тоже не очень: синтаксис, видимо, не слишком подходящий, слишком много скобок выходит.>как и каррирование и композицияКаррированиеЧастичное применение тоже немного через жопу, т.к. требует явного указания. А композицию - да, можно.>И как оно должно выглядеть, с динамической-то типизацией?Никак. Ну или костыльно и через жопу.
>>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)и т.д.
>>615761или #'(or 'f g) => (disjoin #'f g)Уже точно не помню.
>>615585Дрракет поломали же.
>>615812Кто поломал?
Упражнение 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Не могу понять что не так, почему он не выдает сумму двух наибольших чисел?
>>615862Последнее условие неправильное.
>>615862а понял ошибочка в(else (st a s))))а надо (else (st v s))))
>>615877cпс лови няшу
>>615862Проще ж можно[code lang=scheme](define (yoba x y z) (if (and (>= x z) (>= y z)) (+ ( x x) ( y y)) (yoba z x y)))[/code]
>>615933Получается что ты замутил рекурсию? С изменение порядка очередности цифр z двинул вперед?
>>615933По ебалу бы тебе дать за такой код.
>>615947Да.>>615959Чому?
>>615960Потому что твоя задача бороться со сложностью в коде, а ты ебашишь хитровыебанное говно.
>>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]
>>615966так у него же проще
>>615966Наоборот проще читается, чем куча однообразных сравнений, от которых замыливается глаз.
>>615967Ты makabacode не используешь что ли?
>>615992первый раз слышу, это настройка темы сайта?
>>615999Userscrpit. Ссылка в ОП-посте ньюфаг-треда.
[code]<?phpecho "test";?>[/code]
Посоветуйте гайдов по эмаксу для полного дауна, чтобы все просто (просто вводный курс в небольшом количестве статей), на английском или русском.
>>616127Документацию спейсмакса поковыряй.
>>616127А чем тебе встроенный туториал не угодил?
>>616188Ты сам-то его открывал когда-нибудь?
>>616238Я его первым делом прошел как первый поставил емакс (ВАНИЛЬНЫЙ, КАРЛ)
>>616256Удивил. Всегда думал, что их никто не открывает. Я и вимтутор не проходил, не то что емаксовский.>ВАНИЛЬНЫЙ, КАРЛБудто что-то удивительное. Стартеркиты только совсем недавно начали использовать, потому что их нормальных не было.
>>616261Вимтутор я проходил за джва года до емакса.Впрочем в емакс я вкатился только со второго захода.Да я проходил туториал емакса дважды
>>616274Алсо я вкатился в емакс когда читал SICP.
Слабо понимаю смысл туториала emacs. C-n C-p нахуй не нужны, а нужные вещи типа M-x grep не объясняются.
>>616282>C-n C-p нахуй не нужныВот двачую, никогда этим говном не пользовался. Как и вимовскими k-l. Стрелки намного удобнее, особенно если Fn + стрелка = home, end, pgdown, pgup
>>616286Или в виме jk. Уже не помню точно
>>616282>>616286Лолд. Вы просто не понимаете сути.Вимовские хоткеи охуенны. Но вот джва режима не очень.Емакс хоткеи становятся охуенными как только вы перенастроете клаву под ориганальную емаксову.У меня ctrl == левый altalt = capslockПомимо того что дефолтный емакс становится охуенно удобным, даже обычные C-c, C-x, C-v становятся на порядок удобнее.
>>616290Alt слишком часто используется, чтобы переназначать его на капслок
>>616292По сравнению с ктрл? Да и ты попробуй нажать капс мизинецем, это вполне удобно.
>>616311Мне удобнее шифт и контрол мизинцем нажимать. А до капса тянуться надо.
Заметим, что наша модель вычислений разрешает существование комбинаций, операторы которых — составные выражения. С помощью этого наблюдения опишите, как работает следующая процедура:(define (a-plus-abs-b a b)((if (> b 0) + -) a b))Насколько понял если аргумент b больше нуля то меняем знак на +a -b, а если b ниже нуля, то возвращаем a b
>>616335ошибался там получается сложение или вычитание как альтернатива
>>616322Ты посмотри на свою кисть когда ты мизинцем кнтрл держишь. Она пиздец как неестественно изгибается.Я 3 месяца так попользовался емаксом, рука начала болеть. Вот уже третий год с измененной раскладкой — брат жив, зависимость есть.
>>616348На капсе тоже не слишком естественно. Ещё и непривычно.
>>616335>Насколько понял если аргумент b больше нуля то меняем знак на +a -b, а если b ниже нуля, то возвращаем a bПочти. Если b > 0, то возвращается функция +, а если меньше или ровно, то -. А потом уже эта функция применяется к двум аргументам: a и b
Test
>>616290>Вимовские хоткеи охуенны.Говно для инопланетян, у которых руки растут из сисек.>Емакс хоткеи становятся охуенными как только вы перенастроете клаву под ориганальную емаксову.Они всегда были говном. Решения, неудачнее C-n C-p сложно придумать. И дело тут вовсе не в модификаторе, а в том, что вместо нормального расположения рядом использованы зачем-то первые буквы слов next и previous. А эти буквы довольно далеко на клавиатуре.
>>616428Хз, большую часть времени нужно "вниз", а вниз это "N" и нажимать его правым указательным вполне удобно.ОСтальные перемещения обычно совершаются другими способами.
Категорически не переношу емакс, являясь упоротым вимоебом, юзаю slimv. Отсутствуют ли в нем какие-то фичи слайма, которые я упускаю?
>>616445>Отсутствуют ли в нем какие-то фичи слаймаСкорее всего да. Не знаю ни одного расширения для вима, которое было бы полноценно портировано с емакса.
>>616445А спейсмакс пробовал?
>>616445Чем тебе не угодил evil-mode?Самая полная реализация vim'а.
>>616448Не люблю сборочки, я у мамки минималист. Пытался неоднократно в ванильный, но для меня любой редактор с одним режимом выглядит неполноценным.>>616449В любом случае, заново привыкать, конфиг пердолить, хотя, elisp выглядит привлекательнее, чем вим скрипты.>>616446В slimv есть комплит, подсказки по аргументам функций, балансировка скобок, jump to definition, макроэкспандинг, describe символ под курсором, eval/compile form/definition/file, из самого используемого. Что в слайме есть сверх этого? Есть ли смысл в болезненной миграции?
>>616461>Не люблю сборочкиЭто не "сборочка", а полноценный проект поверх емакса.
>>616461>Что в слайме есть сверх этого?Диспетчер, отладчик, дизассемблер. Из того, что сходу вспомнил.
>>616466>отладчик, дизассемблерЕсть, как-то забыл об этом.>ДиспетчерWat? (гуглил, безрезультатно)
>>616479xref кажись называется
>>616479Тьфу, инспектор же.
>>616465Сборочка это, для хипстошкольников.
>>616481А xref - немного совсем другое
>>616465https://github.com/syl20bnr/spacemacs>An Emacs distribution>не "сборочка"
>>616485Инспектор тоже есть. И даже xref.
>>616489"Сборочка" и дистрибутив - вещи разные.
>>616492В чем же разница, поясни.
>>616495Не очень хочется заниматься сейчас формализацией.Объемом и качеством работ, может быть. Целью ещё, пожалуй.Можно провести аналогию с дистрибутивом линукса и сборочкой линукса (предыдущие стартеркиты емакса представляли из себя не более, чем ЛФС с нескучным набором пакетов)
>>616490И как это выглядит? Покажи инспектор на каком-нибудь объекте или классе CLOS'а
>>616504http://kovisoft.bitbucket.org/tutorial3.html#inspobjГлянь вон там. Сам не за пк сейчас.>>616501Любой дистрибутив линукса и есть "сборочка", состоящая из программных продуктов, большая часть которых разработана независимо (ну, почти) друг от друга. Если слово "сборочка" имеет для тебя уничижительный оттенок, тогда ок, пусть будет дистрибутив емакса, но это не меняет сути.
>>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/HomeLarceny http://www.larcenists.org/Gauche http://practical-scheme.net/gauche/index.htmlЧому в шапке про Scheme какая-то хуета?
>>616528Добавь сам, вкинь исправленный вариант.
>>616528С приходом R7RS схема уже стала практичной? Или всё так же, как и было?
>>616652Как только R7RS-large допилят.Но вообще Guile сейчас вполне используется в GNU вместо Lua, а кто-то даже web-фреймворк написал на нем http://web-artanis.com
Упражнение 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 особая форма вычисляет предикат и потом следствие или альтернативу поэтому он не зацикливается потому как предикат истина а значит просто не вычисляет альтернативу, ничего не понятно
>>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 будет вычисляться только в случае, когда решение еще не достаточно хорошее, а в противном случае вычисляться не будет, что и гарантирует выход из цикла.
>>616921Помню когда первый раз читал SICP, эта простейшая, элементарная и понятная на уровне подсознания концепция, выраженная словами уровня "аппликативный порядок вычисления", взрывала мозг почище матана студенту троешнику.Отсюда вывод?Любую хуйню можно приподнести катастрафически сложно, какой-бы просто она на самом деле не была.А на самом деле, формализация даже простейших понятий штука нетривиальная, да.
>>616954Дурацкий вывод, из которого рождаются говнопреподаватели.
>>616954проблема в том что проверяя эту догадку написал (define (p) (p))(cond ((= 0 0) 0) (else p))выдает 0 (define (p) (p))(if (= 0 0) 0 p)выдает 0 подразумевается что при применении функции cond, интерпретатор вычисляет аппликативным порядком и должен первым делом вычислить значение аргументов а конкретно p и зациклиться, но он не зацикливаетсяif особая форма вычисляет предикат и потом следствие или альтернативу поэтому он не зацикливается потому как предикат истина а значит просто не вычисляет альтернативу, ничего не понятно
>>616988cond это синтаксический сахарок в if-else-if-else
>>616988cond - макрос, а не функция
>>616988>>617026Я >>616991 так и сказал.
>>617042Синтаксический сахарок - слишком нечеткое понятие. У меня, например, ассоциируется больше с введенными конструкциями (типа do-нотации в хаскеле), чем с макросами.Лисповые макросы всё-таки синтаксис не меняют, они меняют семантику вычисления.
Анон, подскажи редактор или IDE для Scheme (Guile). Сейчас пользую gVim, хотелось бы более лучшей подсветки хотя бы, да и прочих удобств.Об Emacs сломал 7 пальцев.
>>617053spacemacs же
>>617053emacs + evil-mode spacemacs
>>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)))Что получится, когда Лиза попытается использовать эту процедуру для вычисления квадратных корней? Объясните.
>>617053Вим + slimv + MIT/GNU Scheme (как мы ранее выяснили, смысла ломать пальцы и перекатываться с редактора богов нет никакого)
>>617170Это ты только для себя выяснил. Так что не обобщай.Для меня как был вим - редактором для конфигов, так и остался.
>>617420Преимуществ емакса при использовании в качестве swank клиента (о чем, конкретно, и шла речь) мы найти не смогли, а значит, можно отказаться от позиционирования его как единственной легитимной лишп-IDE и избавить от триггеров людей, уже успевших травмироваться этим чудом инженерной мысли.
>>617504Помимо сванкаслайма есть ещё helm'ы, projetctile, отсутствие режимов и прочие.Кроме того, у вима заметные проблемы с производительностью. Работает он шустро только без расширений.>можно отказаться от позиционирования его как единственной легитимной лишп-IDEНе стоит. Пусть уж лучше люди воспользуются более полноценным спейсмаксом, чем nodepad++ на стероидах и с режимами.
>>617504А вообще, шел бы ты в IDE-тред. Тут всё-таки лисп обсуждается, а не редакторы.
Делал задание на AutoLisp (в Автокаде), это пиздец.
>>617522>helm'ы, projetctileДумаешь, для вима расширений с таким функционалом нет? Серьезно?>у вима заметные проблемы с производительностьюКак там в 2010? Еeasytags (единственное, в прошлом, тормозящее расширение) уже научился в фоне обновлять базу, всякие движки для семантического автодополнения дополняют чуть ли не вперед вводящих код пальцев, за слаймом тормозов не замечал.>>617523Да ну, там senior java developers обсуждают новые плагины к нетбинс, куда мне с вимом со своим.
>>617169помогите с этим упражнением
>>617632Про порядок вычисления аргументов функции знаешь?
>>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 она должна зациклиться
>>617664У тебя p не определено, а только (p). Если заменить то уйдет в цикл.
>>617678в смысле (define (p) (p)) на (define (p) p)или (new-if (= 0 0) 0 p) на (new-if (= 0 0) 0 (p))??
>>617686> (new-if (= 0 0) 0 (p))На это. Ты же определил (p) а не p. Можешь ничего не менять, а определить p, например (define p (p)) - тогда тоже зациклится. р и (p) это разные вещи.
Лиспаны, велик ли оверхед от использования displaced массивов? Они всё-таки перестают быть simple-array и становятся обычными векторами.
>>618852Охуенно велик. Велосипедил парсер json, при использовании displaced тупил сильнее в разы, аж что-то вроде пары секунд против 0.1 на двухметровый файл.
>>618891И как решил? Сделал свой displaced на структурке или :start :end?
>>618893>:start :end?Это. С displaced чисто для теста производительности и делал, они там и не нужны, хуле, прошелся по строке, сгенерировал список атомов, вот и весь лексический анализ.А тебе они зачем понадобились? Или сугубо академический интерес?
Начал учить sicp в качестве основы для себя. Заодно учу дискретку по лекциям из интуита. Потом хочу взяться за алгоритмы макконелла, что еще посоветует?
>>619695Алсо, эта Ракета - просто няха. Так удобно, ничего не надо пердолить, а все есть.
>>616277Анон, вот мне интересно, ты прочел СИСП уже? Давно? Что ты делаешь дальше?
>>619696>ничего не надо пердолитьТо есть ее не настроить ПОД СЕБЯ?
>>619741HtDP, EOPL, TAPL, CTM - список можно продолжать бесконечно.
>>619861>можно продолжать бесконечноЯ не понял - смысл в том, чтобы бесконечно читать?
>>619741Тогда осилил до циклического метаинтерпретатора, потом как обычно накатились жизненные обстоятельства и стало не до этого. К тому моменту когда я читал сисп, я уже сидел в офисе за зарплату писал говнокод, так что я просто продолжил писать говнокод, обмазываясь по возможности функциональщиной.
На каких ЯП посетители лиспотреда пишут на работе?Если те, кто пишут на лиспе? Что за сфера и задачи?
>>619993Считаются ли мелкие утилиты для личного пользования на емакс-лиспе для работы частью работы?
>>619996Сам как считаешь? По-моему нет.
Кто-то работает "лиспером" в какой-то конторе? (именно как lisp devloper, а не какой-то джава-хуй, а лисп только для себя). Расскажите кулстори
Анон, я что-то не понимаю вообще ничего. (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? Я вообще ничего не пойму, помогите разобраться с этим.
>>620085Это из sicp, поиск квадратного корня, если что.
>>619867Век живи - век учись.
>>620016https://vseloved.github.io/ Вот чувак в grammarly работает. Они там йобу для обнаружения и исправления ошибок в текстах на инглише пилят.А из местных врядли кто лиспером устроился. Одни нюфаги же.
Печально, лиспаны. Мне нравится это семейство и программирование на нём доставляет мне много радости, но практически полное отсутствие работы-сильный демотиватор. Его даже на голом энтузиазме невозможно протащить в продакшен. А на человека, который пишет на лиспе, аж ссылки кидают, как на диковинку.
>>620164Я это к тому, что не вижу для себя больше смысла углубляться в лиспы.
>>620164>программирование на нём доставляет мне много радости, но практически полное отсутствие работы-сильный демотиваторНе вижу связи. Нравится что-то делать — делай. Нет — нет.Чай не в тайге живешь, чтоб проблемами выживания перечеркивать любимое занятие.>Его даже на голом энтузиазме невозможно протащить в продакшен.Технических преград нет. Тем более, что для особо интерпрайзных случаев существуют качественные коммерческие реализации с платной поддержкой.А нетехнические при желании преодолеваются: кто-то стартупы организовывает, кто-то начальников переубеждает, а кто-то и уже существующую вакансию находит.>А на человека, который пишет на лиспе, аж ссылки кидают, как на диковинку. Я кинул ссылку, потому что у них действительно интересный проект. Такой и на популярном языке днем с огнем не сыщешь. Тем более в странах бывшего СССР.
>>620085>uessqr-iter? - функция для поиска квадратного корня из х. У нее два аргумента: guess - предполагаемый ответ, при самом первом вызове берется абсолютно любое число, и потом оно постепенно приближается к нужно числу, квадратно корню из х которое является вторым аргументом. Функция sqr-iter? получает два числа guess и x. Сначала проверяется не является ли guess достаточно хорошим ответом (вызывается good-enough?), если достаточно хороший то просто возвращается guess. Если нет, то значение guess улучшается с помощью вызова improve и в sqr-iter? передается улучшеный вариант guess, и дальше все с начала - проверяется достаточно ли он хорош, если нет то еще раз улучшается и так пока не найдется достаточно хороший вариант.
>>620298Много добра тебе, братуха!
Извините что спрашиваю нубский вопрос, но до сих пор не нашел ответ на него, ни в лиспотредах, ни в шапке треда.Зачем нужен LISP?Спасибо!
рассмотрим следующую задачу: сколькими способамиможно разменять сумму в 1 доллар, если имеются монеты по 50, 25, 10, 5 и 1 цент?В более общем случае, можно ли написать процедуру подсчета способов размена дляпроизвольной суммы денег?
>>620909Тебе же даже в книжке решение выдали, что тебе еще надо?
>>620935я его не понял
Число способов разменять сумму a с помощью n типов монет равняется• числу способов разменять сумму a с помощью всех типов монет, кроме первого,плюс• число способов разменять сумму a − d с использованием всех n типов монет, гдеd — достоинство монет первого типа.какой-то абсурд число способов размена равняется числу способов размена без 50 + число способов разменять 100 - 50??? бред
>>620867Тут существует лиспотред только из-за SICP'a. Ну, есть еще всякие диалекты, с помощью которых реально быстро можно написать всякие утилитки для себя.
>>620867Для истории. LISP остался в прошлом. Уже и реализаций-то его живых не осталось.
>>620963>Тут существует лиспотред только из-за SICP'a.NIET. В прошлых тредах сикпа практически не было.
>>620968Разве? А чем можно объяснить популярность сикпа? Вот лично я тут и сижу из-за сикпа. Но он не понятный очень, много нелогичных вещей и неявных решений.
>>620960объясните на конкретном примере допустим число комбинаций 100то следуя этому определения 100=(+(- 100 кроме первого) (- 100 достоинство монет первого типа))Что значит "кроме первого", "достоинство монет первого типа" это 50?
>>620972>А чем можно объяснить популярность сикпа? Считается неплохим вводным в программирование материалом.
>>621040Как по мне он гораздо более интересен как вводная в функциональное программирование и лямбда исчисление.
>>621068Насколько я помню, там совсем мало внимания уделяется ФП
>>621069Я имею ввиду не столько функциональщину уровня хачкеля, сколько то, что первые несколько глав программирование преподносится как функциональная, математическая дисциплина. За счет модели подстановок и отсутствия присвоений.
Число способов разменять сумму a с помощью n типов монет равняется• числу способов разменять сумму a с помощью всех типов монет, кроме первого,плюс• число способов разменять сумму a − d с использованием всех n типов монет, гдеd — достоинство монет первого типа.на конкретном примере допустим число комбинаций 100то следуя этому определения 100=(+(- 100 кроме первого) (- 100 достоинство монет первого типа))Что значит "кроме первого", "достоинство монет первого типа" это 50?
Какая разница между(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))))))?
>>621144Блядь.( (even? b) (mult (double a) (halve b)))( (even? b) (double (mult a (halve b))))
>>621144>( else (+ a ( a (- b 1))))))>( else (+ a ( a (- b 1))))))>( a (- b 1))Здесь а умножается на скобку b-1
>>621147Не траль. Я про порядок здесь >>621146В чем разница будет по сути?
>>621154Я не тралил, т.к. ответил раньше, чем ты написал. Ты же программист, должен понять, что я отвечал на тот пост, который был. А он был с ошибками. Конкретно на это: >>621146ничего не скажу, сам только обучаюсь.
>LispЗойчем нужен? Где применяется, кроме модных и исследовательских проектов?
Число способов разменять сумму a с помощью n типов монет равняется• числу способов разменять сумму a с помощью всех типов монет, кроме первого,плюс• число способов разменять сумму a − d с использованием всех n типов монет, гдеd — достоинство монет первого типа.Приведите конкретный пример этого типа, в виде формулы
Листаю сравнение кложуроскриптоты с жсом: https://github.com/clojure/clojurescriptПочему мне хочется блевать от жабоговна проступающего через слой разномастных скобок?
>>621974Ты про это? Да, кложура/кложуроскрипт - она такая.
>>622040Еще IProtocol мне устроил жабоизлеяние в мозг.
>>622186Это ж основная фича кложуры - быть нескучным синтаксисом поверх существующего языка, а не полноценным самостоятельным языком.
>>622362По сравнению с тем говном что они предлагают, жс выглядит вполне себе неплохо.
>>622488Ну, если смотреть вцелом, то не так уж плохо. Уж точно лучше жс.
>>622559>>622488Сорта говна.
>>622362По-моему, я тебе уже 2-3 раза в разных тредах объяснял за Кложу.Но мне не лень, объясню ещё раз:В языке программирования важно то, какие вещи он делает удобными и идиоматичным. То есть, какой код будет писать программист, если он будет идти по пути наименьшего сопротивления относительно языка.Кложа делает удобным и идоматичным использование иммутабельных данных и использование явной модели времени для описания изменяющихся данных. Именно такой код пишется, когда тупо используешь стандартную библиотеку. Интероп с хост-платформой (типа использования js-объектов) нужен для использования существующих библиотек, когда это необходимо.
>>622606Не вижу противоречий моим словам.
>>622607Нескучный синтаксис - это Кофескрипт. А у Кложескрипта другая семантика.
>>622614У кофескрипта тоже другая семантика: объектная система не прототипная, а классовая.Кстати, вот его-то, в отличие от кложуры, можно с небольшой натяжкой назвать полноценным языком, т.к. в нем нет той неидиоматичной неоднородности низлежащего языка, которая проглядывается в любой кложуре.
>>622621Если в JS система прототипная, а в Кофескрипте классовая, то как использовать JS библиотеки, API которых основаны на прототипах? Не будет ли это выглядеть точно так же неиодамтично?
>>622625Из под кофе сторонние библиотеки юзаются как будто они написаны на кофе и наборот тоже самое. Плюс есть компилятор туда-сюда(js2coffee)
>>622614Вот тебе тоже нескучный синтаксис и другая семантика в одном флаконе:http://ldeniau.web.cern.ch/ldeniau/oopc.html#COS
Есть кто-нибудь кто ковыряет SICP и планирует дальше по хардкору всё изучать? Я просто тоже где то там сейчас, могли бы вместе уёбывать алгоритмы.
>>622973И как ты это себе представляешь?
>>623294Двачую. По SICP угорают только шизоиды, которые не понимают, зачем нужно общение, если можно обойтись без него.
>>623302Но ведь это действительно так.
>>622973я это ты, пили асечку-писечку
>>623384Вы бы не просто изучали алгоритмы, а запилили бы что-нибудь годное на основе изученного.
>>622973пиши скайп свой
>>623294Если застрял где-то можно подсказочку попросить или просто обсудить что не понял. А дальше какие-нибудь проекты вместе запилить.
>>623499 daemondaren
>>623522>daemonты долбаёб?
>>623525Ясно.
https://github.com/takagi/common-lisp-script
Решил таки обмазаться туториалом по SDL от ленивого фу.Общелисп-куны, посмотрите код, скажите что бросается в глаза:https://github.com/TatriX/cl-sdl2-tutorial/blob/master/1/main.lispНа основе http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php
>>623963Добавил еще парочку: https://github.com/TatriX/cl-sdl2-tutorialВ общем, если кому-то интересен поясняющий текст или может быть даже видео — пишите.
очень странные у вас тредывы бросаетесь от реализации к реализации, читаете какие-то книжки и прочееа попробуйте просто сделать одно реальное приложение
>>624053Ну я сделал, например. И что?
>>623963>>624022Ну, там особо и бросаться-то нечему.Отрисовку, кстати, удобнее вынести в отдельную функцию, чтобы можно было легко менять код налету.
>>624053С чего ты взял, что кто-то здесь будет публиковать свои проекты? Это не гитхаб-тред.
>>624068Я пытаюсь сделать так, чтобы код был максимально похож на код из оригинальных туториалов.
>>624073Оригинальные же по первой версии sdl, а она заметно отличается от второй.
>>624076Оригинальных всмысле тех что на cpp написаны.
>>624080А, и точно вторая версия. Я первые уроки пощелкал, мне показалось, что первая.
>>624022Еще парочку переписал.
https://itch.io/jam/january-2016-lisp-game-jamТаки участвовал кто-нибудь? Или тоже забили?
>>624207Забили, да.
>>624208Жалко даже, что как-то тихо и незаметно прошло.
Обосрался я чет на 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
>>624212Ты про это?>optimizedSurface = SDL_ConvertSurface( loadedSurface, gScreenSurface->format, NULL );surface-format же
>>624217хз
>>624222Константы sdl2-ffi:+sdl-pixelformat-* тоже не подходят, convert-surface-format ругается:The value NIL is not of type (UNSIGNED-BYTE 32).
>>624226Так, до меня доперло что скармливать в функцию:(sdl2:convert-surface-format (sdl2:load-bmp filename) :rgb24)Осталось понять как выдрать формат из окна/рендерера.
>>624222Мож у тебя ещё автокомплит хуево прикручен?
>>624235Нет, парни с #lispgames помогли. Оказывается протухшая версия (cl-sdl2-20150709-git) была.Я правда все равно не могу эту херню заставить работать пока.
>>624253Обнови. (ql:update-client)(ql:update-all-dists)
>>624257Обновил уже.(sdl2::surface-format-format (sdl2:get-window-surface win)))Крашится с ошибкой: got Unhandled memory fault at #x8.
>>624258В load-bmp check-null проебан, поэтому ломается без внятных ошибок.
>>624258Автору cl-sdl2 исправления с добавленным check-null отправь, а то мне лень на гитхабе регистрироваться регистрировать.
>>624278load-bmp работает как надо. Ладно, уже разбираемся с автором.
>>624304Т.е. у тебя другая ошибка? Странно. Тогда почему у меня load-bmp на формат изображения ругается?
>>624310Ты посмотри на ошибку то, там же очевидный null-pointer
>>624313Возле очевидного нулпоинтера очевидное описание ошибки с очевидным unknown pixel format
>>624313>unknown pixel formatЭту строку SDL_GetError возвращает, если что.
>>624318Убрал к херам собачим рендерер: https://github.com/TatriX/cl-sdl2-tutorial/blob/master/5/main.lispОдин хер крашится на оптимизации.
>>624318В общем ты был прав. Проверку check-null вкорячили уже в master.
https://github.com/TatriX/cl-sdl2-tutorialПривел туториалы к каноничному виду.
http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.html
В какой ситуации стоит использовать макрос, а когда можно обойтись обычной функцией?
>>624755Если макрос и функция в твоем случае взаимозаменяемы, то нужно использовать функцию. А в случае необходимости оптимизации вызова функции использовать compiler macro. Но такое случается редко.Вообще, макросами без надобности лучше не злоупотреблять.Советую тебе почитать onlisp. Этот момент там хорошо описан.
>>624922Читаю, пока не дошел до этого.
>>624922Всякие with-* штуки часто делают через макросы.Но ведь их можно сделать и через обычную функцию, но тогда придется передавать туда лямбду, что не очень удобно. Хотя в статье >>624719 давали ссылку на call-with- макросы. Да и в слайме макросы не удобны, потому что приходится компилить все функции которые их используют.
>>624971>Но ведь их можно сделать и через обычную функцию, но тогда придется передавать туда лямбду, что не очень удобно.Ну, само собой, что не стоит изъёбываться, всеми силами игнорируя макросы в тех случаях, когда их использование целесообразно.Под взаимозаменяемыми я имел в виду что-то вроде этого:[code lang=common-lisp](defun foo (x y) (bar x y))(defmacro foo (x y) `(bar ,x ,y))[/code]потому что многие поначалу начинают их активно использовать как аналог инлайновым функциям.
>>624996Так (declare inline), не?https://www.youtube.com/watch?v=HM1Zb3xmvMc
>>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 случая.
>>625030ага
>>625030Кстати, нужно быть аккуратным с рекурсивными инлайновыми функциями. SBCL их пытается бесконечно подставлять, поэтому нужно использовать maybe-inline
>>624497Добавил еще пару туториалов. Поправил макросы и еще по мелочи в предыдущих туториалах.https://github.com/TatriX/cl-sdl2-tutorial
>>625153Пришлось опять слать патч в мейнстрим, чтобы дальше делать туториалы. Хорошая все-таки штука, опенсурс.
>>625153Еще парочка туториалов с очередным патчем в мейнстрим. Пока не смержили, если что.
>>625195Я вот ракет изучаю и решил тоже заняться sdl.Так, я застопорился с бесконечным циклом и обработкой событий.Как мне с ним разобраться?
>>625197Ну ты эта, код линкани что-ли.
Как мне сделать getf для своего класса?
>>625421getf не полиморфный хотя в cl21 его сделали таковым, он только для plist'ов.А зачем тебе? Уж не slot-value ли ты ищешь?
>>625432Точнее, slot-value-using-class из MOP
>>625334Я вот это юзаю.https://github.com/cosmez/racket-sdl/blob/master/lazyfoo/lazyfoo01.rktТам же есть и либа.
>>625438Жуть, да это ж голые биндинги. Неужели для рэкета получше ничего не нашлось?
Нашёл вакансию. Дерзайте, посоны: 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
>>625541>JMail/JNI/ActiveX/ODBC>MFCМне уже страшно
>>625441>>625438У петушиной схемы есть библиотека поудобнее http://wiki.call-cc.org/eggref/4/sdl2
>>625438Где у тебя там цикл то?
>>625432В результате сделал обычные функции. Мейнтейнер потом это все в макро завернул.https://github.com/lispgames/cl-sdl2/commit/f8b5279519e48b771c70bedc9e81449aa6da2d43
>>625541Ну что, кто-нибудь откликнулся?
Ну что, кому-нибудь нужен туториал по sdl на общелиспе?
>>625697Сообществу лишним не будет. Заодно и косяки cl-sdl2 поотлавливаешь.
>>625699Каждый туториал — один-два коммита.https://github.com/lispgames/cl-sdl2/graphs/contributors
>>625676Так вот я и хочу его сделать.
>>625755У меня так: https://github.com/TatriX/cl-sdl2-tutorial/blob/master/3/main.lisp
>>625758Да, я твой код смотрел, но в ракете вроде бы немного по другому.Там в sdlвской функции в качестве аргумента принимается указатель на структуру.Вот я не могу разобраться как его сделать.
>>625770Ну хз, в cl-sdl2 используется обертка которая работает с сишными структурами. Зачем тебе эта схема, переходи на темную сторону силы.
>>625709Ну, не удивительно, ведь он довольно сырой. Поэтому многие до сих пор пользуются lispbuilder-sdl.>>625770Попробуй make-_SDL-Event. А лучше найди нормальную библиотеку
>>625796Или make-SDL-Event. Хуй знает, по какому принципу оно конструктору генерирует.
>>625697Я вот думаю, туториал туториалом, но тем кому нужен этот туториал надо сначала рассказать как поставить emacs spacemacs, sbcl, quicklisp. Это ж пиздец.А те кто могут это все поставить сами, нужен ли им туториал?Да и винды у меня нет вообще ни в каком виде, а это основная платформа аудитории как мне кажется.
>>625790>>625796Да я к лиспу первый раз, так сказать, прикасаюсь.Что там и как там у него - мне не ведомо.
>>625839PCL в зубы и вперде.
>>625828Ну, найти и поставить sdl2, sdl2-mixer, sdl2-image на шиндошс, потом ещё настроить IDE - тоже задача не из простых. Но, тем не менее, туториал на сишке существует.
>>625850Если ты про http://lazyfoo.net/tutorials/SDL/index.php то там подробно рассказывается как это все ставить для каждой ОС.
>>625852Надо же. Ну ок.Кстати, нужно бы и нам запилить пособие по установке/настройке среды для лиспопрограммирования.
>>625855От автора CEPLhttps://www.youtube.com/watch?v=VnWVu8VVDbIОн кстати стесняша.
>>625855Кстати, не знаю как сейчас, но когда я изучал сишечку по книжкам уровня с++ за 21 день, самой сложной для меня ступенькой было начать пилить GUI софт. Тогда мне почему-то очень хотелось пилить гуй, и все консольные проекты уровня laba1.cpp вызывали острую резь в анусе. Обмазался Qt, сделал пару тулзовин для работы и охладел к этому делу, потому что погрузился во влажный и уютный мир консольки, вима и вообще линупса для жизни, а не для СМОТРИТЕ ПОСОНЫ, Я ПОСТАВИЛ ЛИНУПС,Так вот, это я к чему все, начинающий анон, терзают ли тебя эти же вопросы или в 21 веке всем уже похуй?
>>625541Лол, мне только что из штатов хуй позвонил, спросил буду ли я делать тестовое задание.
>>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 ведь он всегда разной длины.
>>625995>из штатов>Lisp Engineer - $15/hr, 100% remote positionCrossover Moscow, Russia REMOTE
>>626228Тебе что-то типа этого нужно (apply assoc (mapcat (fn (key) (list key value) args)) ?Если что, я кложуру не знаю.
>>626229Ты хоть бы посмотрел что к чему. Crossover это американская шарага занимающаяся подбором удаленных сотрудников.Акцент у чувака который звонил был явно не русским.
Отличный wm на общелиспе: https://github.com/stumpwm/stumpwmТоварищи со #stumpwm на irc.freenode.net очень отзывчивы и помогут вкатится-настроится.Видео слегка ускорено, но в целом все более менее понятноhttps://www.youtube.com/watch?v=do0DVxy4HBcАвтор как раз сидит на вышеуказанном канале.
>>626586У стампвма ручной тайлинг. Был ещё один на лиспе с динамическим.
>>626596Правила настраиваешь для дефолтной конфигурации и все. Пока сидел на i3 почти не пользовался автотайлингом. Окно на весь экран, вот что нужно 99% времени.
Какие различия между Scheme и Common Lisp?
>>626957Ты что наркоман штолее сука? Зачем ты набрасываешь?
>>626957Главное отличие CL в том, что он не нужен.
>>627054Ты че еба, схемка отлично подходит для обмазывания сиспом, но реальный софт писать — только общелисп.
>>627151нихуя, ракета рулез
>>627162Ну хуй знаетhttps://github.com/search?utf8=%E2%9C%93&q=stars%3A%3E1+language%3ARacket&type=Repositories&ref=advsearch&l=Racket&l=
>>626957Различий намного больше, чем может сначала показаться. Фактически, это два разных языка с разными идеологиями.Если оценивать с точки зрения практичности, то, как по мне, схема в виду своей минималистичности годится только как язык для обучения или как встраиваемая скриптота, а для чего-то большего непригодна из-за разрозненности реализаций, несовместимости и без того немногочисленных библиотек, отсутствия эффективных реализаций (сталин умер; рэкет слишком жирный и тормозной; чикен не тестировал, но сомневаюсь, что компилирование через сишку может дать приемлемый результат).
>>626957Краткое сравнение от схемеров:http://community.schemewiki.org/?scheme-vs-common-lisp
Вопрос об оверхеде кложе. Если мне надо написать приложение, где генерятся массивы длинной более 10000, куча деревьев, множества, списки. И память будет этим забита полностью. Кложе тут норм выбор? Или можно упереться в JVM и в частности сборщик мусора?
>>627394>>626957http://c2.com/cgi/wiki?LispSchemeDifferencesИ ещё одно сравнение.
>>627398Точно сказать не могу, но думаю, что большого оверхеда быть не должно если при кодировании учитывать боксинги/анбоксинги, ленивость и т.д., всё-таки кложура довольно тесно интегрируется с жавой.Так что, скорее всего, всё будет упираться в jvm.Попробуй запилить бенчмарки.
>>627398https://benchmarksgame.alioth.debian.org/u64q/clojure.htmlhttp://benchmarksgame.alioth.debian.org/u64q/lisp.htmlhttps://drmeister.wordpress.com/2015/07/30/timing-data-comparing-cclasp-to-c-sbcl-and-python/ - CLASP, для размышления.Как видишь разница невелика, но я бы всё равно не брал богомерзкую Clojure, потому что jvm.Алсо, поясните, почему c SBCL такой медленный код?
>>627424>почему c SBCL такой медленный код?Где распараллелено хуёво, где библиотека тормозная (cl-ppcre), а где и просто написано неэффективно.Одно время этот тип http://swizard.livejournal.com/158763.html их переписывал, но потом забил. Вроде из-за того, что его код не приняли.
>>627434http://swizard.livejournal.com/167175.html
>>625541Ну таки шо посоны, отвечал им кто или нет?
>>627626Нет, конечно.
>>627641А почему?
>>627672>>625549Мутные какие-то
>>627675Вакансия выглядит так, как их обычно составляют кадровики, что поделаешь.
https://github.com/lispgames/lispgames.github.io/wiki/CommonLisp#lispgames @ irc.freenode.net
http://2ch.hk/s/res/1574001.html
Кто-нибудь щупал?https://github.com/kingcons/coleslaw
>>627806И чем это лучше простого org-export-html?
>>627990Понятия не имею, вот и спрашиваю.
Лиспаны, есть тут кто-нибудь с x86-64 и sbcl?
>>628090Ну я.
>>628123http://benchmarksgame.alioth.debian.org/u64q/program.php?test=nbody&lang=sbcl&id=2Можешь скомпилить это у себя и дизассемблировать функцию advance?
>>628126http://paste.org.ru/?r3snme
>>628192>>628126Ну так и че? Интересно же.
>>628435Ничего не вышло. Код оказался и без меня нормально заоптимизирован: к полям структуры обращение прямое, даблы боксятся только в одном некритичном месте. Но код для FPU, который мне сгенерировал sbcl на x86, выглядит немного туповато. Видимо, sbcl не слишком хорошо умеет оптимизировать использование стек регистров.В этот >>628192 листинг пока ещё не вникал, но, кажется, выглядит чуть получше.Сегодня попробую сравнить с вариантами на ocaml и rust.
>>628946>стека регистровПофиксил
>>625697Если что, я не дропнул, а продолжаю потихоньку пилить туториалы и саму библиотеку.Мне, кстати, дали доступ пушить прямо в мастер ветку cl-sdl2, так что теперь могу нужные мне фиксы сразу заливать, а не ждать мержа пр.
>>629030https://github.com/TatriX/cl-sdl2-tutorial/blob/master/16/main.lisp#L74А это никак в sdl:with-init не заталкивается?
>>629387Это отдельная библиотека. Если ты про мой макро, то заталкивается, да. Я код постоянно рефакторю по мере написания, так что это все еще 100 раз поменяется.
lmao
Что думаете по поводу REBOL'а и его продолжателя Red?http://www.red-lang.org/https://github.com/red/red
>>630132Ничего не думаем. Зачем это?
>>630878Это такой более универсальный лисп с более удобным синтаксисом.
>>630912Чем тебе не нравится синтакс лиспа то? Он охуенен.
>>630994Шумноват. На rebol/red edsl'и выглядят более натурально.
>>630996Хз. Мне норм.
>>630996развей мысль
Пиздец, костыли на костылях. И зачем тогда надо было брать динамически типизированный язык, в котором ничего нет? Что-то странный какой-то курс, не могу понять, нравится он мне или нет.
>>631856Что это за говно?
>>631856Это в рекете-то ничего нет? Лол.А что ты ищешь?
>>631856Хули ты хотел от лиспа? Не нравится - уебывай.
>>631899Курс по хтдп. Пока кажется, что эта книжка - такой же форс, как и сикп.>>631981Я хотел, чтобы меня обучили систематическому программному дизайну, а мне вместо этого рассказывают про тдд и как сымитировать строками и интами нормальные типы данных. А дальше там ещё веселее - делают адт через cond по типу. Жаль, не заскринил, теперь только до понедельника.
>>632114Я не знаю, что ты там за гайд читаешь. В ракете есть специальные макры для паттерн матчинга, а хуйню с твоего скрина какой-то джапидор писал походу.
>>632269> джавапидорfix
>>632271>Джаджапидорfix
https://habrahabr.ru/post/275651/
http://www.youtube.com/watch?v=aKYzfew1pnE
>>633626О, ты даже статью запил.
>>634182Охуенно. Это parenscript там?
>>634290Ага.>>634349Сам чуть струей не кончил.
>>634182Кто-нибудь знает как называется автодополнение с видео? Хочу так же.
>>634386Так это обычный слаймовый искоробочный.
>>634394C-c TAB дефолтный хоткей.Охуенно. Хочу такой же для всего.
>>634401>Хочу такой же для всего.Ты можешь helm заюзать: он универсальный и более удобный.
>>634404Умел бы хелм показывать своё окошко поближе к курсоры, как company или autocomplete, цены бы ему не было.
>>634422Если тебе нужно окошко как в company/ac, то их и используй. Есть slime-ac и company-slime, например.
>>634444Нет, я хочу чтобы helm-company выдавал варианты не в отдельном буфере хуй пойми где, а в окошке около курсора, как это делает обычно company.
>>634477Helm и есть программный интерфейс к тому отдельному буферу хуйзнаетгде.А то, что ты хочешь, делает company и ac
>>6344791 пик: что делает company2 пик: что делает helm (в соседнем буфере)3 пик: что хочу я.
>>634649>>6346
>>634649И чем это, кроме внешнего вида, отличается?
>>634696Очевидно поведением?company работает как дефолтное автодополнение, предлагая варианты с общим префиксом.Ну а helm работает как helm.
>>634703Все замечательно, кроме того что автодополнение открывается хуй пойми.
>>634703А, так тебе fuzzy комплит нужен? Прикрути свой company-source
>>634704Как-то он у тебя и правда ебануто открывается.Строка pattern должна быть прямо над окошком хелма, а она у тебя в минибуфере.
>>634717То что ввод спрашивают в минибуфере это ок. То что варианты открываются в соседнем буфере (обычно еще и поверх нужного мне буфера), не ок.>>634716Поподробней можно?
>>634721Он уже прикручен.
>>634730Для слайма есть, да. Выключе по дефолту: (setq slime-company-completion 'fuzzy)Смейсмакс?
>>634754>Смейсмакс?Ага. Надоело пердолиться с конфигами
>>634767Prelude щупал? Почему именно на спейсмакс пересел?
>>635419>Prelude щупал? Да, на него сначала и пытался перелезть. Сейчас уже не помню, что именно в нем хуже, чем в спейсмаксе.>Почему именно на спейсмакс пересел?Понравилась организация в виде слоев, однородность и гм.. древо-образность клавиатурных сочетаний и активное развитие. В общем, совсем другой уровень, уже не просто набор конфигов, а полноценная целостная надстройка над емаксом.
Ну что, Лейн-Луговские? Как жизнь?
>>636542Нормально, предложили оффер на $125k/year. Единственное, просят релокацию, поэтому сижу думаю.
>>636608Это чем это таким надо будет заниматься за 125 в год? Ебать страшную труп-тян директора?
>>636624Пиздеть на дваче.
https://2ch.hk/gd/res/211718.html()()()
>>638475Будешь участвовать?
>>638536хз. Если вдруг соверешенно случайно придет в голову хорошая идея которую я смогу сделать за неделю, то наверное да. Но я безыдейное говно, поэтому вряд ли.
>>638542>Но я безыдейное говно, поэтому вряд ли.Та же хуйня.
>>638544Если быть точным, то идею худо можно высратьспиздить, но временное ограничение в неделю на реализацию означает что нужно сделать просто. А просто и интересно это дохуя сложно. Увы.
(define (: a b c) (b a c))Удивительно, как простая функция может сделать из ЭТОГО язык программирования.>>638550Две. За две недели даже я успеваю говна наваять.
>>639235Без хоть какого-нибудь опыта в игроделии только говна и успеешь наваять.
>>639340/гд - это такой /пр про игры. Сидят нихуя не умеющие школьники и студенты и разговаривают про индустрию.
Лол, мне тут фанарт запилили. Жалко, что я в лиспах дальше (princ (+ 2 2)) не зашел.
>>640704RFC какой-то на фоне?
>>640710Понятия не имею. Говорю же — фанарт.
>>616528Кто Кавой и Гуашью пользуется, расскажите, как оно. Я, вот, пробовал GNU Guile и Gambit Scheme, так там библиотек нихуя нету.
>>640846>так там библиотек нихуя нету. А ты что хотел? Это ж схема. Скажи спасибо чистоте и минимализму за разрозненность реализаций.
>>640899Так что, у всех кроме Рэкета и Петуха ситуация одинаковая?
>>641139Скорее всего.
>>641143Ладно. Тогда такой вопрос: у кого из более-менее известных Схем удобнее всего FFI к C? И сразу еще один: стоит ли сейчас страдать хуйней со Схемой, или лучше сразу переползать на КЛ или Clojure? Я интересуюсь, потому что Схему знаю, даже в передачу продолжений могу, а КЛ/Clojure - нет.
>>641221> у кого из более-менее известных Схем удобнее всего FFI к C? Я не схемер, но, думаю, у chicken должно быть хорошо с FFI. Всё-таки он через сишку компилируется.Для сравнения могу посоветовать поглядеть общелисповский CFFI.>стоит ли сейчас страдать хуйней со Схемой, или лучше сразу переползать на КЛ или Clojure?Зависит от того, что ты собираешься писать. Возможно, общелисп и правда окажется более подходящим.
Самый ненужный тред на этом форуме.
>>641238Где можно забрать нашу награду?
>>641242У себя за щекой проверь.
>>615102 (OP)Скрипты:(применяются для обучения, администрирования и лепки гостевух, но есть и единичные примеры использования не по назначению, для написания программ. Вместо программы, впрочем, получается гигантский скрипт на выброс)LISP (скобочное говно) — один из самых старых скриптов, до начала семидесятых даже использовавшийся в качестве эрзац-ЯП, за неимением ничего лучшего. На заре его существования был игровой площадкой для монстров CS, которые вскоре положили на него хуй и пошли лепить алгол. Последний крупный проект (то, что сейчас называется Axiom/Open CAS) стартовал в 70-ом году. В настоящее время форсед-мем школьников и первокурсников. Типичный скобкошлеп берет деньги у мамы.Scheme — скобочное говно, сделаное правильно. К алголу приделали скобки и получился лучший скрипт для обучения первокурсников и, возможно, лучший скрипт вообще, но в этом имеет сильного соперника. Типичный схемоеб получает стипендию и денежные переводы от мамы из Крыжополя.* SmallTalk — скрипт, придуманый для обучения программированию детей-дибилов и лучший скрипт всех времен и народов. IBM решили, что для индустрии это как раз то, что надо и пытались его пропихнуть. FIAL. Тем не менее, индустрия таки заразилась от него всеми спидами. Баззворды «ООП», «паттерны проектирования», «юнит-тесты», «рефакторинг», «MVC», да и все остальные пришли в мейнстрим из смолтока. Типичный смолтокоеб на работе пишет на жабе.Не смотря на то, что схемка и смолток делают остальные скрипты совершено ненужными, массы динамических петушков выбирают ПЫХОПЛЕЯДУ (Perl, PHP, Python, Ruby).ПЫХОПЛЕЯДА — это высеры ГСМ-ов и неграмотных долбоебов, которые проделали большую работу изобретя колесо (квадратное) — чукча не читатель, блеать. Пыхоплеяда состоит из протопыха (слишком приподвыподвернут для петушков, известно, что новейшую версию первоначально удалось реализовать только на хаскеле), пыха — классика гостевушного жанра, гвидопыха и джапопыха. При этом, если гвидопых отличается от пыха только ЧСВ гвидопыхеров, упивающихся своей невъебенной илитностью, и наличием у хуесосов харизматичного фюрерка, то джапопых действительно несколько более продвинут, и в мокрых фантазиях джапопыхеров является смолтоком.Знатоки пыхоплеяды лепят гостевухи за доширак и заправляют картриджи.
>>641246>Scheme>К алголу приделали скобкиТолстовато.
>>641236>общелисповский CFFIА он стандартизирован?>что ты собираешься Минимум - это бизнес-логику, которая должна одинаково работать одинаково везде: на сервере, на стационарных клиентах и на мобильных устройствах. Поэтому нужен простой и портативный язык. Остальное можно писать и не на нем, но, конечно, хотелось бы.
>>641252Эээ, "одинаково работать везде".медленнофикс
>>641252>А он стандартизирован?Де-факто. Поддерживаются все основные реализации, за исключением, может быть, ABCL.>Минимум - это бизнес-логику>простой и портативный язык.На роль простого и встраиваемого языка больше подходит схема (chicken или guile, например, две последние буквы которого расшифровываются как Language for Extensions). У CL же большинство реализаций вообще не встраиваются. Исключение - ECL, который компилирует в сишку и который менее совместим с остальными реализациями, и некоторые коммерческие реализации.
>>641252>простой и портативный языкДля этого есть Lua, JavaScript, да и Java, в конце концов.
>>641409>JavaScriptТолсто.>да и JavaОчень толсто. Даже Common Lisp в большей мере "простой и портативный", чем ява.
>>641410>Толсто.https://github.com/gfwilliams/tiny-jshttp://duktape.org/>Очень толстоСервер, десктопы и Андроид искаропки, iOS - через RoboVM. Что еще нужно?
>>641417>Что еще нужно?Простота и портативность. А ещё хоть какая-то выразительность, а то этак и на ц с крестами писать можно.
>>641419>выразительностьС этим согласен. Но! Очень много языков компилится в Java 7-совместимый байт-код, даже Clojure. Правда, на мобилках он запускается и работает медленно. Лучше Kotlin.
>>641425>Правда, на мобилках он запускается и работает медленно.Ещё бы оно не тормозило с такой-то еблей с dex'ами.
>>641417И чем это лучше схемы?>>641425>Лучше Kotlin.Очередная мертворожденщина типа груви.
>>641437В Duktape, по крайней мере, работают очень многие JavaScript'овские библиотеки, написанные для Node.js или браузера.
>>641419hscript
>>641256Dylan охуенно выглядит. Жаль, что его использует чуть более чем нигде, хуже даже чем Лисп.
>>641695Если уж говорить про "охуенно выглядит", то тут стоит упомянуть ребол
>>641564Странные эти люди. С одной стороны пытаются всё сделать, лишь бы на явоскрипте не писать (изобретают кофе-, кложуроскрипты, елмы), а с другой стороны пихают этот недоязычок во все щели без разбору.
>>641695Надо бы его добавить в шапку следующего ОПа.
>>642007Да и вообще шапку бы надо переделать. Кто-то в начале треда предлагал с нуля запилить, но тем всё и закончилось.
>>641974Согласен, тоже радует глаз.
>>642129Следишь за Red? Они там уже VID для ведроида допиливают
>>642131Не, у меня времени нет, а на работе только на Пистоне пишу.
http://twg7.blogspot.ru/2016/02/blog-post.htmlЛеплю императивную парашу.
>>642295Какую-то карточную йобу?
>>642296Ага, хартстоун про скобки.Один из игроков в мою другую игрушку подрядился мне графоний рисовать, лол. Первые наброски.
>>642306Охуенно.
>>642295>>642306Если что я делаю это в прямом эфире: http://www.twitch.tv/tatricsЩас правда уже закончил, потому что нужно работу работать, а то и так уже сижу бомж пакет жру.
>>642306Сука, это просто невозможный пиздец.Пол дня, блять, пытался завести это говно на злоебучей винде. Нихуя. Вообще по нулям. КАЖДАЯ сука операция завершается миллиардом ошибок. Говно гроб гроб кладбище пидор.Я уж не говорю что в саомй винде любое действие заставляет себя чувствовать кастрированным одноглазым одноногим одноруким крабоговнообсоском.
>>643915С чем именно проблемы? grovel?
>>644269Т.е. не гровел, а их велосипед - autowrap
>>644269>>644273С горем пополам собрал. Так теперь эта блядина в рантайме сразу валится без стектрейса с ошибкой уровня "Unknown alien function call"
>>644786
>>644791>>644786>>644273>>644269>>643915Вот так и начинаешь понимать, почему Рик Хикки выбрал JVM как платформу для Clojure.
>>644982Думаешь, с jni проблем меньше? Ошибаешься.
>>644982У вас неправильная версия JAVA(TM) СКАЧАЙТЕ НОВУЮ ВЕРСИЮ ИНАЧЕ ВЫ ХУЙ.
>>644786Так ты забросил игру что ли? Я тут на семерочке cl-sdl2 из гита попробовал: всё само собралось и даже запустилось без всяких проблем (basic-test запускал). Ты уверен, что у тебя версии sdl совпадают?
>>646662Проблема в sdl-ttf который тупо не работает. Если осилишь собрать, я может даже успею до 10 числа демку доделать. Я и так уже три дня проебал на попытки заставить это дерьмо работать, собрал все библиотеки руками и хуй.Была последняя надежда на 64 битную винду, но пошла она в пизду.
>>646937Точнее он собирается, но в рантайме вылетает с "unknown alien function" на sdl-ttf:initАвтор либы в чатике меня игнорит, а самому ковырятся с этим дерьмом у меня времени нет, проект еще сдавать сегодня.
Чем лишп удобнее обычных декларативных языков? В частности, чем кложура удобнее явы и до-диеза для непосвященных?
Сука проебал текст поста. Похуй.http://www.parens-of-the-dead.com/
>>647080С каких хуев жаба стала декларативной?
>>647226Каюсь, перепутал. Имел в виду императивное.
>>646937Завтра погляжу, что с ней не так.
Аноны, нашел в спеке по лиспу линк на такую книжку 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Если умею в английский, она сгодится для старта в лиспе?
>>647317сорри, приклеилась
>>647317Да, вполне хороша.Хотя мне PCL больше понравился.
Проиграл в голосину.http://www.youtube.com/watch?v=kK8_j1oxX7k
>>646939>но в рантайме вылетает с "unknown alien function" на sdl-ttf:inithttps://github.com/Failproofshark/cl-sdl2-ttf/blob/master/src/library.lisp#L3Имя dll-ки для шиндошса не определено, поэтому ничего не подгружается. В остальном всё работает, хоть и пришлось немного поебаться с установкой mingw для гровела и, внезапно, с поиском собранной libffi.Ещё оказалось, что окно не создается, если запускать sbcl изпод емакса.
>>647735Добавить нужно что-то вроде:> (:windows "SDL2_ttf.dll")
>>647080Ну, например, поддержкой т.н. интерактивной разработки, когда ты можешь писать код и сразу же его компилировать прямо в рантайме работающей программы.
>>647735Попробую.Два дня ебался с этим дерьмом сам, а потом нашел msys2.
>>647735>>647737Подсунул ему библиотеку.Запускаю (ttf-examples:basic-example)и ничего. Тупо все намертво виснет.
>>647843>Тупо все намертво виснет.Изпод емакса запустил sbcl что ли?
>>647843Выключил в примере :accelerated вроде просралось.
>>647845Блять, злоебучая винда1) Запускает sbchost который грузит систему на 100%2) Запускает TrustedInstaler.exe который грузит систему на 100% и НЕ УБИВАЕТСЯ3) Говорит что если я её не ребутну для накатывания апдейтов, она сделает это сама.Как они это говно вообще жрут, ссссука???!
>>647845Запустил из под cmd.exeРезультат тот же.
>>647852Могу у себя потестить, если код скинешь.Алсо, попробуй на ccl ещё проверить. В sbcl, помнится, одно время была кривая поддержка шиндошса.
>>647858https://github.com/TatriX/lispstoneПробовал на clisp и еще в чем-то. Там вообще пиздец.
>>647737Заслал пулреквест в апстрим.
>>647852А у меня завелось.
>>647964Ну охуеть. Ебани скрин чтоли?
>>647964Алсо у тебя x86 или x64?
>>647964>>647852На ccl, правда. Под sbcl почему-то квиклисп внезапно сломался.
>>647966
>>647968X86
У тебя libffi не от cygwin случайно?
>>647976Собери exe?>>647987Я руками собирал. Только с ним вообще хоть как-то запускается.
>>648003Попробуй эту ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libffi_3.0.6-1_win32.zip
>>648003Собрать вечером могу, сейчас я с ведра.
>>647852>libpng.tar.xzТы все либы сам собирал что ли? libpng и остальные тут есть http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.14-win32-x86.zip
>>648013Тьфу, не та ссылка. Я имел в виду sdl-image
>>648013Все что было собранным, брал собранным.Блять, как же у меня пригорает с этого дерьма.
>>648027А, все это я забыл сраные dll от sdl_image допихать.
>>648029Ну во! Теперь мож и под sbcl заработает?
>>648034О да.Надо теперь сделать нормальный main loop, а то я там влепил слип в цикле, потому что sdl2kit в треде запускается.
>>648054Хотя похуй, для демо и так сойдет.
>>648054Ты хоть :compression t добавь, чтоб жури от размера бинарника не охуевали.
>>64806217 метров архив вышел. Щас попробуем твой флаг.
>>648072С ним бинарники обычно по ~15мб и получаются.
>>648072>Unable to save compressed core: this runtime was not built with zlib supportВ пизду. На фоне юнити 17 метров не так и много.
>>648076http://tatrix.org/public/games/lispstone.zip
>>648076ccl, кстати, бинари поменьше делает, но он и код генерирует чуть менее эффективный.
>>648080Теперь осталось самое просто: сделать игру, лол.
Кстати, решил тут еще opengl'ем обмазаться, когда уж совсем все настоебет. Вот по этой книжке:http://web.archive.org/web/20140212105533/http://www.arcsynthesis.org/gltut/index.htmlконвертирую туториалы в https://github.com/TatriX/cl-gl-tutorials
>>648085Ещё ж неделя целая. Я вот начинал пилить, но забросил. Фантазии на сюжет и геймплей не хватило.
>>648090Геймплей не нужен. Как и сюжет. УДАЧА же.
>>648077Короче это дерьмо работает только на софтверном рендеринге под виндой. Я хз почему.
>>648112У тебя и пример из sdl-ttf тоже только без accelerated завелся? Если да, то видимо драйвера виноваты, а не винда, потому что у меня он работал.
>>648121Да.Заслал товарищу с нормальной виндой. У него тоже виснет.У тебя работает?
>>648123Ну да. Я код примеров не трогал.
>>648126Я про мой высер: >>648077
>>648128Лень было на винде проверять, поэтому запустил под вайном. Работает.Думаю, на настоящей тем более должно работать.
>>648128И ещё, проверь у себя пути к ресурсам. Вайн на них ругался:>#<THREAD "SDL2 Main Thread" RUNNING {254D2F29}>:> SDL Error (#<TTF-FONT {#X00000000}>): Couldn't open Z://assets>/DejaVuSans.ttfХотя возможно, это его баг.
>>648153Это баг. Образ лиспа запомнил путь полученный через (asdf/system:system-source-directory :twg)Переделала на относительный путь, должно прокатить.
>>648165>ПеределалаТы знаешь правила.
>>648183Лол. Очевидная опечатка же
>>648184Да не ебёт меня. Сиськи показывай.
>>648187Вот вам мои сиськи с супом.
>>648190Блять как же жрать то охота, пиздец.Экзешник 51 метр. Экзешник+все либы в зипе = 17 метров.
>>648196Попробуй (gc :full t) перед сохранением образа. Должно меньше получиться.
>>648212Да похуй же.
Сложно ли выучить и понять лисп? Если я сделаю это, изменит ли он мои взгляжы на программирование в целом? Поможет ли улучшить подход к использованию других ЯП?
>>648429Нет. Да. Да.
Кстати вот еще в шапкуhttp://learnlispthehardway.org/
Вот что меня раздражает, так это необходимость файлик цеплять в:filesМожно это как-то упростить?
>>648435Выглядит интересно, но она же полупустая ещё.
>>648439В asdf что ли? А что за проблема перечислить, ведь их не так много?Вообще, asdf вроде бы умеет в glob-шаблоны или что-то похожее.
>>648454хз, заебывает делать руками то, что комп по идее должен делать сам.Как оно с глобом разрулит порядок загрузки?Что кстати тоже заебывает. Не хочу думать о порядке функций в файлике. А точнее обычно хочу сделать его обратным, чтобы используемая функция шла после использвания.
>>648517>хз, заебывает делать руками то, что комп по идее должен делать сам.Прикрути к емаксу такую функцию. К какому-нибудь projectile. Хотя по-моему нет никакой сложности добавить (:file "file") руками.>Как оно с глобом разрулит порядок загрузки?Никак.>Не хочу думать о порядке функций в файлике. А разве нужно? В любом случае, в такой сортировке нет ничего плохого, т.к. она упрощает отслеживание зависимостей.
>>648527По мне так наоборот, лучше читается сверху вниз. Ну тип(defun a();;;;(b))(defun b ();;;;(fuck))Как книжку читаешь.
http://www.youtube.com/watch?v=7V9TF2qx1_8
Пора перекатываться
>>649344 (OP)>>649344 (OP)>>649344 (OP)>>649344 (OP)>>649344 (OP)>>649344 (OP)>>649344 (OP)