::: Учебники Cookbook :: https://lispcookbook.github.io/cl-cookbook/ PCL :: http://lisper.ru/pcl/ OnLisp :: http://www.paulgraham.com/onlisptext.html ::: Документация http://www.lispworks.com/documentation/HyperSpec/Front/index.htm ::: Библиотеки https://github.com/CodyReichert/awesome-cl http://quickdocs.org/ ::: Среда разработки Portacle :: https://portacle.github.io/ Остальные :: https://lispcookbook.github.io/cl-cookbook/editor-support.html
Надо, наверное, обратить внимание на то, что S-выражения — это форма записи древовидных структур данных: https://en.wikipedia.org/wiki/S-expression Её, например, издревле используют для отладочной печати абстрактных синтаксических деревьев. Таким вот забавным образом любая лисп-программа являет собой запись её AST. Ну и SICP надо не забыть: http://newstar.rinet.ru/~goga/sicp/sicp.pdf
Зачем нужен Лисп в 2k18?
В ОП-посте забыли про SICP! (хотя это не учебник по LISP, согласна) Ну и конечно про Racket... А вещь очень годная. Зачем нам академический и весьма архаичный CL, когда есть няшный Racket. >>20941 Например для того же, для и чего и тыща_других_яп.жпг, же. Как практический пример могу привести вот это вот: https://www.opennet.ru/opennews/art.shtml?num=49795
>забыли про SICP! Давайте в 2021 замутим конфу в дискорде и будем совместно проходить эту игру. Больше ни для чего этот ваш лисп не нужен сегодня.
>>25629 Совсем забыли спросить няшечку.
>>25630 По поводу SICP? Я и предлагаю ставить Racket и проходить его в относительно приятной компании. В настоящее время это основное применение лиспа на мой взгляд.
>>20938 Не совсем верно, стоит наверно лучше оговориться, что "запись на АСТ" это скорее запись в прямой лямбда-нотации, хотя та же скима (scheme) имеет ряд примитивов, т.н. специальных выражений, которые не следуют принципу применения процедуры к аргументам, такие как определение define, cond, и if. Про "лисп", если вы имели ввиду Common Lisp я вообще молчу, там примитивов немногим больше 30, многие из которых созданны для эффективной генерации кода.
Что скажете по поводу Guile? Как оно?Кроме старичков из GNU на scheme ещё пишет? И где оно используется?
>>25695 >И где оно используется? Используется повсеместно, помимо огромного количества сфер применения и роста заинтересованных в проекте GNU увеличивается и число развиваемых на этом языке проектов. К примеру мне доставляет движок для создания визуальных новелл [tsukundere], особенно учитивая, что мы с автором сходимся во мнении по очень большому числу вопросов начиная от того как писать ПО, заканчивая тем как должно строиться государство. Вот тута можно посмотреть его [игры]. А ещё есть мой [перевод] на одну из его игр, но ведать из-за кривого английского при общении он подумал что я против включения файла перевода в основной состав проекта. К сожалению, веб до сих пор приходится писать на [кложе] так как только там нормальный repl для работы с сервером + есть нужные либки. Да, есть [artanis], но там всё монолит на монолите. Ну а для всего основного системного и прикладного гиль уже давно "готов", если под готовностью понимать "возможность сделать что-то", а не "возможность сделать что-то, работающее очень быстро", на это рассчитан CL какой-нибудь или другие диалекты скимы. >Кроме старичков из GNU на scheme ещё пишет? И не стоит думать что там в GNU одни старики всем управляют, есть GNU Assembly (если в кратце, организация для привлечения внимания к проблемам во внутреннем управлении проекта GNU (ака governance)), в котором есть [много] не равнодушных к будущему проекта. >Как оно? Я всем доволен. По крайней мере это адекватней позиции OpenBSD, второго для меня по интересу проекта, где всё должно писаться на сях. >Что скажете по поводу Guile? см. ответы на вопросы [tsukundere] https://gitlab.com/leoprikler/tsukundere [игры] https://leo-prikler.itch.io/ [перевод] https://liltechdude.itch.io/gensokyo-rainbow-incident-rus [кложе] https://clojure.org [artanis] https://www.gnu.org/software/artanis/ [много] https://gnu.tools/en/people/
>>25698 Спасибо за обьяснение! Из того что я знаю на GNU Guile написан пакетный менеджер GNU [Guix]. Сервис менеджер GNU [Shepherd] (ссылка на репозитойрий у что-то не работает). И GNU [Mcron]. И мне интересно кто и что пишет на lisp сейчас кроме GNU. > И не стоит думать что там в GNU одни старики всем управляют Это была дурацкая шутка. Да и кроме товарища Столлмана я никого не знаю. Для меня, как для Python поколения, этот ваш Scheme кажется языком с другой планеты. Я ещё не знаю что вводит в больший ступор (+ 1 2 3 78) или (cdr (cdr (cdr (car '(list))))). Надеюсь ты не против, что я стащил твою манеру постинга. [Guix] https://guix.gnu.org/ https://git.savannah.gnu.org/cgit/guix.git/ [Shepherd] https://www.gnu.org/software/shepherd/ [Mcron] https://www.gnu.org/software/mcron/ http://git.savannah.gnu.org/cgit/mcron.git
>>25699 >Спасибо за обьяснение! Всегда пожалуйста, я бы и сам рад задавать тут вопросы, только вот кроме Мицгола, Соуса, пары крокодилов и тебя, дорогой Стив, никого не видно, поэтому не знаю какие ответы вообще могу получить, да и никто это место особо не пиарит. К сожалению, зарубежное сообещество намного более зрелое и огромное количество людей вместо распыления (не всегда безосновательно) сил между нашим сообществом и забугорным выбирают именно последнее. Из возможных "ниш", где ещё может жить русский язык в разработке вижу только двачевский /pr, где очень унылый троллинг (и ещё я не могу получить туда доступ), и "университетская среда" (читай как среда самообразования), где люди просто ещё не успели понять терминологию, но уже на пути к этому. >Из того что я знаю на GNU Guile написан пакетный менеджер GNU >[Guix]. Сервис менеджер GNU [Shepherd] (ссылка на репозитойрий у что-то >не работает). И GNU [Mcron]. Я специально не стал перечислять какое либо ПО главным счётом потому, что не хотел создать предубеждения относительно сферы использования, так как буквально каждый язык сегодня перешёл в какую-то свою нишу и крепко там корнями сидит, из-за чего у случайного пассажира неявно может возникнуть ассоциативная связть "гиль – это вот про то и это", или, исходя из приведённых тобой примеров "гиль – это про всякие unix штуки, которыми я всё равно не пользуюсь". Может быть этот самый пассажир написал бы "guile imageboard" в его любимом поисковике и нашёл бы [kotatsu]. >И мне интересно кто и что пишет на lisp сейчас кроме GNU. Ну, именно lisp (clojure, common lisp, scheme), если не иметь ввиду Guile, а вообще всё "семейство", то много где, но кажется ты имел ввиду именно гиль. Если так, то, насколько известно, местечковые сообщества, энтузиасты и некие [высоко-производительные вычисления] в Германии. Но научная сфера она такая, деньги там откуда-то поступают, исследования ведуться, но что там да как мне лично не интересно. >Для меня, как для Python поколения, этот ваш Scheme кажется языком с >другой планеты. Во-первых, не стоит себя ассоциировать с каким-то python поколением, как и вообще с любым инструментом. Насколько мне известно, почти каждый, кто пишет на функциональный языках, изначально постигал тонкости именно императивных инструментов (не исключая и меня). И благо интенсивная практика помогла увидеть многие коренные проблемы в мейнстримных инструментах. Чего и каждому желаю – много практиковаться, и только тогда вы поймёте что нужно именно вам. И никогда не стоит слушать тех, кто знает лучше вас что вам нужно.
>>25701 Sorry, your message is too long. Message length: 9761, maximum allowed length: 8192 >Я ещё не знаю что вводит в больший ступор (+ 1 2 3 78) или (cdr (cdr >(cdr (car '(list))))). Мат. нотация меня до сих пор иногда пугает, но это не аргумент против изучения математики! Ну а так, чисто для формализма, знак ' означает, что следущая форма будет прочитана как данные, а не как, исходя из β-редукции лямбда исчисления, применения функции к операндам. Вообще, в чистом лямбда исчислении нет таких понятий, близких к программированию, как структуры данных, поэтому надо придумывать всякие вот такие цитирования ('(1 2 3) можно записать как (quote (1 2 3))), то есть ты говоришь интерпритатору: смотри, вот тут нужно воспринять (quote (1 2 3)) именно как (1 2 3), не применить функцию 1 к опреранду 2 и 3 (что даст ошибку, так как связать 1 с функцией лично у меня не получилось). Раз на то пошло, хочу так же высказать своё мнение, что обучающимся лучше не использовать синтаксический сахар в скиме (и вообще при изучении любых языков программирования), такой как: ⁃ (define (func arg1 arg2 arg3) (+ arg1 arg2 arg3)), а использовать (define func (lambda (arg1 arg2 arg3) (+ arg1 arg2 arg3))). Да, я не согласен с подходом в SICP, но могу понять авторов, так как объясняли они там первокурсникам тему + тогда не было той же самой википедии с поисковиками, хотя свой этот "баг" они вроде как обсудили в паре глав после введния понятия процедуры. ⁃ Вообще любые темы по типу того же знака ', который выбивается из модели (функция аргумент1 аргумент2 аргумент3) Ну а если серьёзно, то если в языке можно сделать что-то не идиоматично, то есть так, как разработчики языка не задумывали использование своего инструмента[1], то скорее всего люди так поступать и будут. Это я вообще всё к чему. К тому, что во всех закорючках есть смысл, не от дикого желания сделать именно `вот так' всё появилось и развивается. >Надеюсь ты не против, что я стащил твою манеру постинга. К счастью, она не моя, а такой тип общения есть обычная традиция общения по электронной почте, хотя когда можно написать пару предложений, делаю это в текстовом поле браузера. Если что-то длинное, по типу текущего текста, то можно использовать [Emacs], который [org] [версию текста] переводит в "txt" довольно просто. >[Shepherd] https://www.gnu.org/software/shepherd/ У шеферда кстати открывается репозиторий без проблем, просто нужно написать перед .git shepherd (как сделал я), или зайти на полный [список исходиков проекта GNU] и совершить "Ctrl-F shepherd". Как обычно, если остались вопросы и открытые моменты, рад на них ответить или что-то обсудить. [kotatsu] https://github.com/ECHibiki/Kotatsu-V [высоко-производительные вычисления] https://hpc.guix.info/ [Emacs] https://emacs.org [org] https://orgmode.org/ [версию текста] http://termbin.com/3hi1 [список исходиков проекта GNU] https://git.savannah.gnu.org/cgit/ Footnotes ───────── [1] Например как я использовал в питоне словарь с ключами в виде цифр от 1 до 32 для работы с алфавитом на первом курсе. Люблю приводить этот пример как показатель того, что (почти) никто, кого вы считаете умным, не рождался со звездой во лбу.