Это копия, сохраненная 30 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
{Основные диалекты}
:: Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и частичный их вывод в некоторых реализациях.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
- свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (LLVM; ориентирован на интероп с C++), ABCL (байт-код JVM), CMUCL, GCL.
- коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl
:: Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Наиболее практичными реализациями являются GNU Guile и Chicken Scheme.
:: Racket - развитие PLT Scheme. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket, Scheme стандартов r5rs и r6rs).
:: Clojure - cм. соседний тред (ОПу почившего надоедло бампать, шапка здесь: https://rentry.co/9ve9d )
{Scheme}
::: Учебники
- SICP :: https://mitpress.mit.edu/sites/default/files/sicp/index.html
- The Scheme Programming Language (R6RS) :: https://www.scheme.com/tspl3
- Практика :: https://exercism.io/my/tracks/scheme
::: Документация
- http://web.mit.edu/scheme_v9.2/doc/index.html
::: Остальное
- https://github.com/theodesp/awesome-scheme
- https://github.com/schemedoc/awesome-scheme
{Racket}
::: Учебники
- HtDP :: https://www.htdp.org/
- Racket Guide :: https://docs.racket-lang.org/guide/index.html
- Beautiful Racket: https://beautifulracket.com/
- Остальные :: https://racket-lang.org/books.html
::: Документация
- https://docs.racket-lang.org/
::: Библиотеки
- https://github.com/avelino/awesome-racket
- https://pkgs.racket-lang.org/
::: Среда разработки
- DrRacket :: https://docs.racket-lang.org/drracket/
- Online :: https://www.jdoodle.com/execute-racket-online/
{Common Lisp}
::: Учебники
- 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
- https://ultralisp.org/
- https://lisp-journey.gitlab.io/blog/state-of-the-common-lisp-ecosystem-2020/
::: Среда разработки
- Portacle :: https://portacle.github.io/
- Остальные :: https://lispcookbook.github.io/cl-cookbook/editor-support.html
Предыдущий тред: >>1591537 (OP)
> (процедурщина,
Разве это не ассемблай? Я думал императивщина...
> Racket
Это правда что он блоатед как Си плюс плюс?
вкатился
Лисп не считается, конечно, на нем только борщи хлебать.
Хруст
>Я думал императивщина...
Императивщина - более общее понятие
>Это правда что он блоатед как Си плюс плюс?
Нет, у него просто много батареек.
Сишка. Лиспы для микроконтроллеров жирноваты.
Хотя есть Carp и uLisp, давно облизываюсь их попробовать, всё никак руки не дойдут.
>Карп не более чем пруфофконцепт.
Как лисп без рантайма или сишка с макросами вполне сойдет.
>А так-то и на кложескрипте можно
Вот чему-чему, а кложескриту там точно не место.
Common Lisp
>Ну это работает, даже платки типа "стендэлоун репл" продаются.
На esp32 с nodemcu что ли?
>Только зачем...
Вебмакаки дорвались до железок, называется. Мощности этой еспшки хватило бы на симбиан7 со всеми йобами того времени, а этим едва на помигать светодиодиками хватает. И ладно бы они просто игрались дома, а ведь эти обезьяны ещё и в коммерцию пытаются, и это страшно. Пройдёт время и дырявые китайские роутеры покажутся верхом качества и безопасности.
>На esp32 с nodemcu что ли?
Да.
>Вебмакаки дорвались до железок, называется.
Нет, там чувак работает в области встроенной электроники для автомотив индастри вроде, писал легковесный кложевый рантайм на няшной раньше, ну а тут просто по приколу запилил, почему бы и нет.
>И ладно бы они просто игрались дома, а ведь эти обезьяны ещё и в коммерцию пытаются, и это страшно.
А что страшного в том, что ты можешь личинке например купить платку с лиспореплом и красивым лого? Наоборот прикольно. Прикинь еще бы сделать аналог maria.cloud с буклетом и светодиодами, было бы заебись. Это конечно не лишп-машина, но эстетика-то какая!
Питон, руби, жс и даже имеют уже столько фич из ФП, что я уже просто не вижу смысла использовать лисп в продакшене.
К тому же, сколько стоят лисп программисты? Дорого пиздец, так как скилл очень редкий.
>Нет, там чувак работает в области встроенной электроники
Видел я его гитхаб, там сплошные хелловорлды на кложе прямо одержимость какая-то, чуточку гуи-содомии и один единственный "поглядите, я запустил кожуру на nodemcu". Зато в графе "о себе" красуется Hardware Engineer. Уж не знаю, что он у них делает, но надеюсь, что просто ездит по конференциям.
>А что страшного в том, что ты можешь личинке например купить платку с лиспореплом и красивым лого?
Пердуинка тоже как игрушка для личинок задумывалась, но дорвались макаки и уже кое-где на серьёзных щщах внедряют свои высеры.
От некоторых таких проектов волосы в самых неприличных местах шевелится начинают https://habr.com/ru/post/221663/
Хорошо, сейчас
Ну, это даже на наброс не тянет. Суждения уровня:
>Лисп? Знаю. Это язык, интерпретатор которого пишется в 10 строк. Так, а интерпретатор = медленно.
>И про gc тоже слышал, из-за него jvm тормозит.
>Динамическая типизация? О! Это ж как в питоне, а он медленный.
Ладно, видимо байтить мне не дано :(
Нет, все равно как-то скучно, не получается. Пойду освою лишп чтобы знать за что зацепиться
>Guix кто-нибудь использует?
Ну я guix использую, но исключительно как дополнительный пакетный менеджер и средство развертки окружений.
>Хочу лисп машину
Тогда тебе не guixsd нужен: https://github.com/froggey/Mezzano
Нет ты.
Няша-то какая.
А мурку? Мурку можешь?
Этот шиз клепает картинки, ассоциируя набор книг и прочих увлечений с каким-то образом охуительного персонажа. Такие дела.
Хорошо, ракету, циклон и курочку я разгадал, остальное что?.. Анимедебилы где вы когда вы так нужны
Это из гатарей главный герой. Кроссовер с Шинобу.
А как же chez?
Бесконечная абстракция это не к добру
Всё, что не в меру, не к добру.
Похоже на SuperCollider. Но зачем лишп, когда у него и так есть свой язык программирования?
Это и есть коллайдер. Точнее это scsynth (аудио-сервер). А вместо sclang (свой язык программирования) я юзаю лишп. sclang в каких-то аспектах клевый, а в других раздражающий что пиздец. Лисп создан для лайв-кодинга, поэтому грех был не не пользоваться этим.
>Видел я его гитхаб, там сплошные хелловорлды на кложе прямо одержимость какая-то, чуточку гуи-содомии и один единственный "поглядите, я запустил кожуру на nodemcu"
Почему, как раз "я запустил сабж на нодекму" - это хелловорлд (там писать-то ниче не надо), а так он на сишке имплементацию кложи запилил (до того как альтернативные легкие имплементации были мейнстримом), вот это уже не хелловорлд.
>От некоторых таких проектов волосы в самых неприличных местах шевелится начинают
Ну эт конечно пиздец
Ну если сравнивать схему\кл с условным руби, то действительно, у них уровень "функциональности" примерно одинаковый. Собственно все руби\питухоны\жс и пилились как копия лишпа, только без скобочек. С другой стороны, кл например может быть гораздо быстрее руби и питухона, и при этом давать больше возможностей для абстракции. Но в проде конечно я бы его использовать не стал, зачем?
Кложа - это уже функциональный язык в современном понимании (но без статикофанатизма), там стиль кода очень сильно отличается от рубипитухона. Нет, ну конечно можно хоть на джаве в иммутабельно-функциональном стиле писать, но зачем?
>К тому же, сколько стоят лисп программисты? Дорого пиздец, так как скилл очень редкий.
Берешь студента, обучаешь, профит. "Вы нам еще сами доплачивать будете за то, чтобы на лишпе писать!", был такой прикол. Алсо, сверхвысокая зарплата кложуристов - это все-таки немного не так работает, что типа прочитал сикп\пкл\выучил кложу - и бабах, стал миллионером. Прост в комьюнити преобладают синьоры-помидоры, потому как язык на них автором и целился, и соответственно они бы и на крестах столько же получали (ну и плюс еще область применения такая, что зарплаты повыше средних - не формошлепство).
>>1966949
Лучше бы раст конечно пикнул-ап, типа если ему для себя писать, то навык бы наработал в более интересном языке.
Лишп (коммон лишп и схема) могут быть быстрыми (да даже жс может быть быстрым со всеми рантаймоптимизациями-то), но вот про размер бинарника что есть - то есть. С другой стороны, для мелких си эл ай утилит вполне может быть достаточно какого-нибудь гуайла и\или бабашки. Но и говноланг для задачи "наговнякать говняшку на 500 строк и выкинуть" тоже норм подходит.
Овертон стух вроде как. Автор плюнул и сделал sonic-pi. Который норм, но раби конечно такое.
Ну оно и позиционируется как тулза для обучения.
>императивная параша
А для сабжа-то какая разница? Там же и так хуйц - обновил, хуйц - обновил
Паттерны вполне себе функциональные, как и synthdefы, в отличии от пикрилейтеда. Впрочем, у меня с ним почти нет опыта, так что хз.
В кложу есть смысл вкатываться, не имея опыта погромирования на РАБоте? Язык нравится, да так, что от других воротить начинает.
Как питонист - ляйн збс, годнота. Никакого зоопарка, один тул для всего, так еще и на самом языке.
А вот от жавы можно блвануть, мечтаю о нативной кложе, или на дроугой платфоме, потому что джава это пиздец господа. И горькая правда в том, что без жавы писатль на кложе можно только хелоувордлы.
Мавер это вообще пиздец, я понимаю что джава очень старая, хотя вот не старая нихуя, сейчас все языкик +- одногодки из популярных и не очень. Но они явно решили что у них свой путь. От одноних названий белвать тянет, артефакт блядь.
Вот если бы ты мечтал запилить свой стартуп, а не вечно ишачить наемным гоем, то бы писался от жапки. А еще больше от пхп
Почему? Я работал на кабанчиков, которые сами кодили. Они прямо очень любили эти языки.
Все кого я знаю, либо ненавидят жаву\пыху, любо окодят на ней. Как только перестают, сразу начинают ненавидеть. Ну ты понял, что то там про утенка.
Аналогично, лисп можно либо любить, либо не знать.
Но по изначальной теме - кто реавльно выбирает джаву и уже тем более пыху для стартапа? Ватафак? Собрались деды решили запилить онлайн-форум для пенсионеров, с регой по паспорту?
Не знаю какие у вас там смузи стартапы. Обычно стартап начинается так: к кабану приходят другие кабаны и говорят что кабан в доле, если сможет до такого-то срока запилить мвп, чтобы навешать на уши лапши ну прямо очень важному инвестору. Тут и жава как раз, потому что на ней могут кодить и пенсионеры и пионеры. Ваши эти кложуры со скалами может быть появляются на уже самоокупающихся проектах, с единственной целью, чтобы у техлида на проект стояло чем бы дитя не тешилось лишь бы не уволнялось.
В том то и смысл, что бы стояло. Кто пойдет в старап писать на пыхе, если на пыхе можно идти писать в компанию, которая не закроется пока ты отшел на обед. Поэтому чем еще привлекать смузихлебов в молодую, быстрорастущую компанию, как не модными техналогиями и остствием легаси спагети булшита?
>Аналогично, лисп можно либо любить, либо не знать.
Те, кто начинали с ML, лисп не любят даже если стараются
>Обычно стартап начинается так: к кабану приходят другие кабаны и говорят что кабан в доле, если сможет до такого-то срока запилить мвп
Стартап уровня мухосранска в рашке
Общелисп в каком-то смысле полная противоположность какому-нибудь хаскелю. В том плане что надежность обеспечивается не системой типов, а устойчивостью к ошибкам за счет сигналов и рестартов, плюс возможностью патчить все на лету. Можно даже сравнить с эрлангом.
>если сравнивать схему\кл с условным руби, то действительно, у них уровень "функциональности" примерно одинаковый.
>схему\кл
Возмутительное невежество.
>Кложа - это уже функциональный язык в современном понимании
Не совсем. Это тоже мультипарадигменный язык с ООП, мутабельностью и бесшовным FFI в целиком и полностью императивный мир явы/жс.
Если сравнивать по "уровню ФПшности", то она где-то между общелиспом и схемой.
>но без статикофанатизма
Кложефанатик как есть. Вас таких на конференциях выращивают?
Я начинал с хаскеля и окамл, лисп люблю. Где твой бог теперь?
>там стиль кода очень сильно отличается от рубипитухона
Ага, поэтому костяк аудитории кложи это бывшие рубисты и заебанные питонисты.
Clack, Woo, cl-async.
Ну, то есть, если бы такой лисп был бы, то все функции в нем бы выглядели так: (define (+ x y) @",x + ,y")
>>1982999
>>1983053
Очевидно, я имел в виду что этот лисп не транспилируется в конкретные языки, а в произвольные языки, выбираемые разработчиком. То есть мне нужен транспилятор чистого лисповского AST в произвольный код на том языке, который выбрал я (любой, хоть HTML, хоть JS, хоть C, хоть другой Lisp).
>любой, хоть HTML, хоть JS, хоть C, хоть другой Lisp
Щито блять?
Короче, вот тебе парочка трансляторов:
https://github.com/cbaggers/varjo
https://common-lisp.net/project/parenscript/
https://github.com/eratosthenesia/lispc
https://github.com/ruricolist/spinneret
Ознакомляйся, разбирайся.
Мне нужна среда, где я бы сам создал этот транслятор чистых скобочек в другие языки.
Похоже самому придется делать, блядь. Разве только я догодался до такой простой концепции, как метаязык программирования, где ты сам конструируешь свои DSL, которые будут транслироваться в другие уже существующие языки?
Если чисто для себя на попробовать - ну можешь вкатиться, а так - не особо. В качестве ее ЦА новички не рассматривались. Но с другой стороны если ты уже более-менее знаешь какой-нибудь питухон\джаву (на уровне петпроджектов и пары книжек), то почему бы и нет, будет полезно. Но работу хуй найдешь.
>>1981921
А че с лейном не так? Как раз по этой части кложа самая комфортная по сравнению с джавами\питухонами\не-дай-бог-жсами\говнолангами и даже растами ибо не надо 3.5 часа компилять гигабайты говна на каждый чих.
Ну если такая аллергия на лейн, просто бери искаробочные deps.edn и тягай все прямиком с гитхаба, чому нет.
>Мне нужна среда, где я бы сам создал этот транслятор чистых скобочек в другие языки.
Уже есть такая и называется лиспом. Берёшь дерево да транслируешь. Что тебе ещё нужно? Вообще, какую задачу ты пытаешься решить?
Ну пыха в 2021 - это несмешной анекдот, а джава в общем и целом нормальный язык (уебищный и сложный, но нормальный ну именно в плане экосистемных вещей, сопровождения и т.п.).
>лисп можно либо любить, либо не знать
Неправда, многие тру-мегахардкор-штанга-в-категории-эндофункторов фпшники знают лисп и ненавидят. Но правда многие его знают по вершкам-корешкам, поэтому не вдупляют в каеф, но многие и вдупляют и все равно не любят. Тем более кал :3
>Как раз по этой части кложа самая комфортная по сравнению с джавами\питухонами\не-дай-бог-жсами\говнолангами и даже растами
Эт чем же? Очень сомнительное утверждение
>Ваши эти кложуры со скалами может быть появляются на уже самоокупающихся проектах
Нет, наоборот. Три с половиной мегахакира за месяц пилят прототип, продают его за сотни нефти или получают посев, потом съебывают в закат (а проект перепиливают с кложи на жаву 9000 свеженанятых обезьян).
>Возмутительное невежество.
В схеме мутабельные коллекции.
>Если сравнивать по "уровню ФПшности", то она где-то между общелиспом и схемой.
Не согласен, кложа фпшная, потом схема, потом общелисп. Анон, ну достаточно открыть парочку любых проектов на гитхабе и сравнить. Кложа тащем-то была первым "мейнстримным" среди маргинальных языков, которая запилила полноценные иммутабельные коллекции в стдлибу.
>>но без статикофанатизма
>Кложефанатик как есть.
Не понял твоего прохода.
Таки джависты в основном.
>Неправда, многие тру-мегахардкор-штанга-в-категории-эндофункторов фпшники знают лисп и ненавидят.
Обычно это школьники, которые слышали, что лисп - функциональный язык, но привычного хаскеля там не увидели, т.е. не разобрались.
Да и вообще, с чего зрелому человеку ненавидеть язык? Ты и сам школьник что ли?
Тебя обманули, мальчик. ВзрослыеЗрелые дядьки не делят мир на плохое и любимое, они обычно знают, что не бывает плохих инструментов, бывает неуместное или неразумное их использование.
Не, дело в тормознутости jvm и, если мне память не изменяет, в поиске и подгрузке плагинов (или чего-то такого) при старте.
>Так он при первом запуске скачивает зависимости и все такое
Какие ещё зависимости при выводе помощи? Даже npm себе такого не позволяет.
>>1983607
При беглом знакомстве ничего необычного не заметил (если не считать крайне неспешного запуска).
В основном бесшовно не получится. У каждого лиспа есть свои специфичные типы данных, библиотеки зависимые от всяких DLL, и так далее.
В моем случае даже qoute не нужны, так как вся программа полностью состоит из макросов.
> Вообще, какую задачу ты пытаешься решить?
Программировать свободно. Большинство языков очень сильно ограничивает. Особенно, когда дело качается всяких спкцифичных областей типа музыки, математики (напомню, что большинство языков не может в интегрирование, автоматическое решение уравнений, и банальные комплексные числа и дроби). Почему бы не использовать языки типа Mathematica? Всё просто, теперь ты привязан к среде выполнения Mathematica, и код в браузере не запустишь. Лишь метаязыки могут быть одинаково полезны везде, ибо ни к чему не привязаны.
Хз, тулинг который на каждый чих просирается секунду, такое.
Кто бы рассказал на пальцах в чем смысл core.typed
А, вона что. Ты dsl-ориентированное программирование изобретаешь. https://www.red-lang.org/ - вот, ребята пытаются реализовать подход, где каждой предметной области по edsl.
>Кто бы рассказал на пальцах в чем смысл core.typed
Примотать к скобкам типы изолентой. Очевидно же.
Ну не на двух пальцах, а хотя бы на девяти.
Что мне позволит сделать лисп после его изучения?
inb4: излечение рака, восстановление потенции, etc
>В схеме мутабельные коллекции.
Ну да, в ней есть процедуры для модификации cons-ячеек (кстати, отсюда кложа и позаимствовала стиль именования процедур с "!"). Ну и что?
Да, как и кложа, схема - не чистый язык, но, в отличие от неё, именно функциональный, а не мультипарадигменный.
>Кложа тащем-то была первым "мейнстримным" среди маргинальных языков, которая запилила полноценные иммутабельные коллекции в стдлибу.
Не, я понимаю, что кложа самая лучшая, самая фпшная, самая первая и вообще самая-самая во всем и всегда, но нельзя же настолько далеко выходить за рамки объективности, анон. Задолго до неё были эрланг, хаскель, да даже скала.
>>>но без статикофанатизма
>>Кложефанатик как есть.
>Не понял твоего прохода.
Позабавила твоя продаванская риторика:
>если сравнивать компот "схема"\лимонад "кл" с условной колой, то действительно, у них уровень "натуральности" примерно одинаковый.
>Нектар кложа - это уже натуральный напиток в современном понимании (но без сокофанатизма)
Кложуристов будто всех по одной методичке учат, а потом они бегают аки одержимые по форумам и раскидывают агит-речовки Да, анон? По-моему, ты один такой на всю борду, кто бегает из треда в тред со своей прелестью.
>Что мне позволит сделать лисп после его изучения?
Писать на лиспе. Ну и третье око может открыться, но это не точно.
ваш КО
Так а какие программы на нём писать можно?
С учётом того, что я пока не пользуюсь имаксом и не имею потребности в его конфигурации
> Так а какие программы на нём писать можно?
Любые. Лисп это просто синтаксис а не экосистема, как джавы и прочие джаваскрипты.
>Любые. Лисп это просто синтаксис а не экосистема,
Любые сферические в вакууме. Для остальных, увы, нужна экосистема и на лиспе их никто не пишет.
> Для остальных, увы, нужна экосистема и на лиспе их никто не пишет.
Ты можешь брать любую уже существующую экосистему. Можешь хоть микроконтроллеры инжинерить, можешь писать веб-фронтенд, можешь писать серверы, можешь погрузиться в алгоритмическую музыку, или писать игры в unity.
Повторю, лисп это просто скобки. Просто способ записи программ. Как только ты это поймешь, тебе откроется вселенская истина.
Ну да, во вселенной со сферическими программами в вакууме, которые сами по себе и которые пишут с полного нуля, и представляют из себя обработку входных данных.
В мире реальном без экосистемы, стандартных библиотек и массы всего ещё язык программирования лишён смысла.
Язык программирования это не просто синтаксис, это платформа и экосистема.
Ну ЖС она есть, у лиспа её нет.
>Так а какие программы на нём писать можно?
Можно хоть динамические опердени, хоть самопорождающие кластеры метапарадигм.
Какой вопрос - такой ответ
> Язык программирования это не просто синтаксис, это платформа и экосистема.
Неа. Я могу спокойно поменять синтаксис языка не меняя сути. Не путай компилятор и язык программирования, это разные вещи.
>>1985001
Лиспы настолько разные (сравни общелисп и схему), что нельзя отнести лисп (как явление) к конкретной парадигме. Есть диалекты лиспа, имеющие свою семантику, но это всё равно лиспы. А почему лиспы? Потому что s-exp. Чем можно охарактеризовать лисп в целом? Скобками, конечно.
В целом, все тьюринг-полные языки взаимозаменяемые. Можно js превратить в s-exp, и он действительно будет одним из многих диалектов лиспа.
>почему лиспы? Потому что s-exp.
Не всякий лисп имеет сехп, подойдет любая AST в принципе, например sweet-sexp и еще какие-то, которые вместо скобочек используют уровни отступов
Строго говоря, лисп - не язык, а целое семейство языков. Но обычно, говоря о лиспе как о языке, имеют в виду общелисп.
В любом случае, утверждать, что язык = синтаксис - глубокое заблуждение.
>Чем можно охарактеризовать лисп в целом?
Гомоиконностью, характерной макросистемой, динамичностью.
>Потому что s-exp.
Не всё, что на сэкспах, - лисп.
>>1985053
Согласен. Tcl, например, тоже в некоторой степени можно отнести к лиспам.
При условии хорошего компилятора Если выключить все предохранители в общелиспе, то все типы будут проверяться во время компиляции.
Молодой человек, вы давно в календарь заглядывали?! Какая статика в 3187 йольде?
Чи шо, отец, наоборот, код на CL нужно весь увешать декларациями типов, чтобы там хоть что-то проверялось
> В любом случае, утверждать, что язык = синтаксис - глубокое заблуждение.
Окей, возьмем некий DSL. Пишем транспилятор синтаксиса DSL в синтаксис JS. Код один и тот же, но записан на разных языках различающиеся только синтаксисом. ЧДТ.
Приведу тебе контрпример. Берём код на лисп-подобном DSL:
>(воскл ((сказ учи) (пр.доп матчасть)) (обращ сука))
и транспилируем в синтаксис русского:
>УЧИ МАТЧАСТЬ, СУКА!
Код один и тот же, но записан на разных языках различающиеся только синтаксисом. ЧДТ.
Но ты только что повторил мой пост.
trim-last-key не работает для многих клавиш, например C-', т.к. (kbd "C-'") возвращает вектор [67108903] у которого last как бы и есть C-'
Если я уберу kbd, то оно возьмёт последний знак из переменной, поэтому ESC <menu> <tab> <return> <escape> не будут работать.
Что делать? Как сделать чтобы работало для обоих ситуаций?
>Хз, тулинг который на каждый чих просирается секунду, такое.
От него требуется один раз на проект запустить репл, дальше все делается изнутри репла (в т.ч. можно скачивать и добавлять новые зависимости). Ну и потом под релиз запустить таск, можно не на локальной машине
>>1983680
>в чем смысл core.typed
На практике - возни больше чем толку. Можно пробовать юзать для чистой бизнес-логики, но лучше за то время тестов написать
>Ну и что?
Что структы мутабельные и все остальное тоже мутабельное, ко.
>Задолго до неё были эрланг, хаскель, да даже скала.
Малолетний долбоеб, в хаскеле только списки, скала запилила либу коллекций как раз после кложи, заимствовав ее оттуда (а потом перепилила еще раз), короче не шаришь - иди нахуй в гугл
>Позабавила твоя продаванская риторика
У тебя просто шиза с голосами в голове и баттхерт на ровном месте.
Конфиги и модули для имакса, сервер-сайд, тяжелые клиентские сингл-пейдж приложения. Вроде все. Остальное конечно тоже можно, но ненужно.
>>1985985
В волмарте и амазоне емнип отделы, но искать лучше в стартапах (хотя хз что считать стартапом), чекай реддиты короче
Емакс лисп не лисп, понятно, ладно тогда буду ручками добавлять :(
Тут обсуждают какой плугин в вскод установить.
>в хаскеле только списки
Ясно. Значит, ни Data.{Map,IntMap}, ни Data.Set, ни Array там нет, это всё козни злопыхателей, скала всё лучшее слизала с кложи, эрланга и того более - не существует (аж с 80х годов), а кложа опередила всех и во всем. Но никто этого не признаёт, и поэтому до нас снизошел ты, дабы нести благую весть. Это я понимаю. Но почему бы тебе не уединиться в отдельном треде, чтобы последователям не пришлось собирать твои глянцевые изречения по всей доске?
> Малолетний долбоеб, в хаскеле только списки,
Каво? Ты долбоеб? В haskell всё иммутабельное, даже небо, даже аллах. Это чистый функциональный язык программирования.
> В haskell всё иммутабельное
А как же IORef, STRef, всякие анбоксед массивы, Array.Storable и так далее?
Это костыли от безысходности. Не считается. Так или иначе, Haskell, Prolog, и прочие первые из борщехлёбских, и были те, кто вводил иммутабельность в STD.
>В haskell всё иммутабельное
Нет, не все
>Это чистый функциональный язык программирования.
На самом деле нет, но это вообще не имеет отношения к теме диалога, долбоеб ты эдакий. Ему говорят, что в х-ле стдлиба на говносписках, как у дедов в 80-ых, он отвечает про чистоту. Дебил, хули.
>там нет
Есть конечно
>скала всё лучшее слизала с кложи
Почему "слизала"? Ебантяй ты какой-то, а хикка "слизал" у окасаки и багвелла по твоей логике тогда?
>а кложа опередила всех и во всем. Но никто этого не признаёт
Дебил, че ты несешь-то?
https://github.com/scala/bug/issues/3724
https://stackoverflow.com/questions/3107151/persistent-data-structures-in-scala
Тебя кложурасты покусали? Съеби с треда, баттхертнутая хуйня.
(defun every-other (list &optional offset)
(nreverse (let ((new '()))
(dolist (i (number-sequence (or offset 0) (- (length list) 1) 2))
(push (nth i list) new))
new)))
(defmacro clojurelet (clauses &rest body)
`((lambda ,(every-other clauses) ,@body) ,@(every-other clauses 1)))
Это let как в кожуре: вместо (let ((x 1) (y 2))... делать (let (x 1 y 2)...
Какие еще в кожуре прикольные штуки есть?
Да и так уже быстрее некуда. Просто часть населения слоупоки, и их не напрягает подождать пол секунды между каждым действием.
Дыачну. Помню, смотрел как-то проект Alda, который был написан на кложе. Пиздец, чтобы вычислять программу для воспроизведения музыки, там надо целый сервер поднимать. Спрашивается, нахуя? Почему бы просто и быстро програть ноты из скрипта? Жава-питухи как есть: есть проблема - поднимай локальный сервер.
>скала запилила либу коллекций как раз после кложи, заимствовав ее оттуда (а потом перепилила еще раз)
Как человек, писавший и на кложе, и на скале, могу сказать что их библиотеки коллекции очень сильно отличаются. В скале коллекций намного больше, они обычно не ленивые, не реализуют джавовые интерфейсы, есть мутабельные коллекции, и все завязано на систему типов. Что-то похожее есть, конечно, но говорить что скала заимствовала библиотеку коллекций из кложи, некорректно.
Какое глубокое понимание кложеских коллекций.
Мимо проходил, хз о чем вы спорите, но список в кложе настолко же далеко ушел вперед от списка в том же лиспе, насколькоь список в питоне от списка в си
Да тащемта любой тип данных можно представить в виде списка. Так что врядли кложа придумала что-то новое.
> список в кложе настолко же далеко ушел вперед от списка в том же лиспе, насколькоь список в питоне от списка в си
Список в кложе почти ни насколько не ушёл от списка с лиспе. Тупо список на иммутабельных конс целлах.
> Так что врядли кложа придумала что-то новое
Хикка просто аккуратно закодил все персистентные структуры данных из диссертации Криса Окасаки 96-го года (плюс ещё некоторые более поздние алгоритмы из этой области), запретив мутабельность на уровне языка.
> Списки, нарпимер, реализуют тот же интерфейс что и функции.
Что ты несешь? Если ты про синтаксис, то он во всех лиспах такой же.
>> Ясен пень. Список, он и в Африке список.
Так и есть. Можно и js тоже самое сделать, если синтаксис транспилировать.
>>Это чистый функциональный язык программирования.
>На самом деле нет
На самом деле - да. Из нечистого хаскеле только unsafePerformIO
>в х-ле стдлиба на говносписках, как у дедов в 80-ых
Тебе уже выше указали на containers, но ты тактично не заметил. То, что это не часть base, ничего не меняет.
Кожурскрипт это разве не для браузера? Вместо жса и тайпскрипта
Эльм какой-то противный язык. Списки неправильные, даже по-индексу нельзя обращаться. Почему-то есть Array и List, но нахуя спрашивается? Во всех нормальных языках для списков есть только один тип данных.
Зависимых типов нет.
Гомоиконности нет, макросов нет, кастомных операторов нет. Комплексных чисел нет, и их даже нельзя прикрутить. Рациональных чисел (дробей), блядь, нет, алё это что такое?
Проблему (0.1 + 0.2 == 0.3) не исправили, пидарасы, хотя давно пора.
В том же языке Pure я могу написать функции:
(0.1 + 0.2 == 0.3) = true
(0.1 + 0.2 ~= 0.3) = false
И всё. В эльме так не получится.
Полиморфизма нет, и не завезут.
Программировать нормально не сможешь, ибо нету даже намёка на символическое программирование по типу Lisp/Pure/Prolog/Wolfram Mathematica.
Почему бы не свести язык к каким-либо фундаментальным вещам и плясать уже от них?
Так уж лучше кложаскрипт, чем это кривое говно.
purescript
Спасибо
И тебе
Код релейтед выдает ошибку
ELISP> (let ((list '()))
(dolist ((i '(1 2 3))
(j '(4 5 6)))
(push (cons i j) list))
list)
Точно! Пойду макр писать
Точнее cl-mapcar
(require 'cl-lib)
Есть таблица инфиксов:
'(infix 10 "=" )
'(infix 1 "$" )
Есть таблица аутфиксов:
'(outfix "(" ")")
'(outfix "{" "}")
Ну и таблицы для префиксов и постфиксов. Все остальные символы считаются как есть, т. е как токен типа 'symbol.
По этим таблицам создается функция-парсер, такая что String -> AST.
Есть ли такая либа в Scheme/Racket? Очень нужно.
Яхз, водятся ли тут схемеры, могу лишь подсказать за общелисп.
В нем есть esrap и такой набор батареек: https://github.com/scymtym/parser.common-rules#infix-operators
Выглядит как прокаченный Pure Data
Max MSP с человеческим лицом.
Это конечно все хорошо, но где реальные примеры применения этой штуки в создании настоящей мызыки, а не рандомного набора нот.
>@j-bresson released this yesterday
А ничего, что первый публичный выпуск только вчера состоялся?
>но где реальные примеры применения этой штуки в создании настоящей мызыки
Справедливости ради, я и применения аналогов сабжа для создания настоящей музыки, а не говна с саундклауда, не видел.
> А ничего, что первый публичный выпуск только вчера состоялся?
Туторы по Open Music еще 7 лет назад были.
https://youtu.be/N4s83rEG028
> Справедливости ради, я и применения аналогов сабжа для создания настоящей музыки, а не говна с саундклауда, не видел.
Как правило эти аналоги не созданы для музыки. Max/MSP и PureData это скорее про синтез звука, а не про музыкальные абстракции и структуру.
Большая. Music Score, Rythm, Chord, Chord Progression - это всё типы данных, которые должны обрабатываться функционально, а проигрываться монадически.
Не люблю кложу, ибо JVM. Больше люблю транспиляцию без рантайма.
А как тут партитуры то набирать? Нихуя не редактируется.
Синтаксис языка прост: (f x y) это то же самое, что f(x, y) в алголоподобных. Всё делается с помощью функций. Например, if стейтмент выглядит как (if condition then else). then и else это либо вызов функции, либо переменная/постоянная, которую if будет возвращать. Арифметика тоже делается таким образом: (+ 1 2 3) это (1 + 2 + 3) в обычных языках программирования.
Самое мясо в том, что весь синтаксис - это списки. Язык дает тебе много функций для работы со списками. Это дает ему суперспособность: ты можешь манипулировать кодом с помощью любой из этих (или написанных самим собой) функций. Функция, которая манипулирует кодом, называется макром или макросом. Макросы развертываются во время компиляции. Например, можно сделать макр который будет трансформировать `1 + 2 3 / 5` в (+ 1 (/ ( 2 3) 5)), если тебе не нравится лисповая нотация для арифметики, или list comprehension из хаскеля/питона, или ООП, или... На самом деле, всё что угодно можно сделать в лиспе, не модифицируя компилятор, используя всего лишь сам язык. Любой синтаксис и любую идею, которая имеет смысл в другом языке, можно повторить в лиспе. Из-за этого никто не жалуется на лисп. Если тебя что-то не устраивает или чего-то не достает, ты просто делаешь как тебе хочется. Таким образом, каждый проект написанный на лиспе, превращается в эдакий DSL, где язык подогнали под свои нужды, что ускоряет разработку в разы.
Но вообще этот язык, который открыли ещё в 50-х, гораздо круче любого языка даже если игнорировать макры. Многие фичи в современных языках изначально появились в лиспе: сборка мусора, списки которые могут хранить информацию любого типа, REPL, метапрограммирование, функциональное программирование, рекурсия, implicit return, ключевые аргументы, вариадические функции, опциональные аргументы, print() который может распечатать любой объект... И как видишь, питон на самом деле очень близок к лиспу в этом плане, и не достает лишь макров.
Так что, если тебе не нужна какая-то суперкрутая библиотека из питона, лисп всегда лучше.
Синтаксис языка прост: (f x y) это то же самое, что f(x, y) в алголоподобных. Всё делается с помощью функций. Например, if стейтмент выглядит как (if condition then else). then и else это либо вызов функции, либо переменная/постоянная, которую if будет возвращать. Арифметика тоже делается таким образом: (+ 1 2 3) это (1 + 2 + 3) в обычных языках программирования.
Самое мясо в том, что весь синтаксис - это списки. Язык дает тебе много функций для работы со списками. Это дает ему суперспособность: ты можешь манипулировать кодом с помощью любой из этих (или написанных самим собой) функций. Функция, которая манипулирует кодом, называется макром или макросом. Макросы развертываются во время компиляции. Например, можно сделать макр который будет трансформировать `1 + 2 3 / 5` в (+ 1 (/ ( 2 3) 5)), если тебе не нравится лисповая нотация для арифметики, или list comprehension из хаскеля/питона, или ООП, или... На самом деле, всё что угодно можно сделать в лиспе, не модифицируя компилятор, используя всего лишь сам язык. Любой синтаксис и любую идею, которая имеет смысл в другом языке, можно повторить в лиспе. Из-за этого никто не жалуется на лисп. Если тебя что-то не устраивает или чего-то не достает, ты просто делаешь как тебе хочется. Таким образом, каждый проект написанный на лиспе, превращается в эдакий DSL, где язык подогнали под свои нужды, что ускоряет разработку в разы.
Но вообще этот язык, который открыли ещё в 50-х, гораздо круче любого языка даже если игнорировать макры. Многие фичи в современных языках изначально появились в лиспе: сборка мусора, списки которые могут хранить информацию любого типа, REPL, метапрограммирование, функциональное программирование, рекурсия, implicit return, ключевые аргументы, вариадические функции, опциональные аргументы, print() который может распечатать любой объект... И как видишь, питон на самом деле очень близок к лиспу в этом плане, и не достает лишь макров.
Так что, если тебе не нужна какая-то суперкрутая библиотека из питона, лисп всегда лучше.
А, ну и помимо всего прочего: CL сделан не как скриптовый язык, а как язык для работы в индустрии. Поэтому ты найдешь разные штуки типа неймспейсов, например.
РЕПЛ лиспа лучше чем у питона в разы хотя бы потому, что в емаксе можно отредактировать ввод до того как репл его прочтет.
ООП в языке тоже другое: CLOS, очень похоже на Smalltalk.
>питон на самом деле очень близок к лиспу в этом плане, и не достает лишь макров
Понятно, а может в таком случае есть просто такой лисп на котором можно писать обычный питонячий код + если нужно использовать макросы?
> а может в таком случае есть просто такой лисп на котором можно писать обычный питонячий код
Не пынемаю что ты имеешь ввиду. Если тебе нужен лисп который работает с библиотеками питона, то Hy. Если нужен простой в использовании, то Racket.
> + если нужно использовать
Они во всех лиспах имеются
>Не пынемаю что ты имеешь ввиду.
Ну типа избавиться от скобок и сделать питоновский синтаксис для обратной совместимости, чтобы если что можно было чисто python-style скрипты написанные на этом питонячьему интерпретатору скормить, я так понимаю это с помощью макросов возможно же. Но при этом и синтаксис лиспа с макросами тоже поддерживался.
Тебе придется потратить много времени, а в конце концов 100% питон из лиспа так и не получится, т.к. например правила скоупинга что там, что тут, отличаются.
Сексп для питона с макрами - это Hylang https://github.com/hylang/hy
А ты вообще что собираешься делать? Какие задачи преследуешь?
> например правила скоупинга
Да что там, даже библиотеку не импортировать - названия-то разные.
Если у тебя есть набор правил трансформации синтаксиса лиспа в синтаксис питона, то да.
> Это уже транспиляция получается, так не честно
Если я правильно понял, ему не нужен сексп в питоне, ему нужен питон с макрами. В питоне макров нет и никогда не будет.
>чем cl с точки зрения удобства лучше того же питона
Возможностью программировать на живую, перезапусками, частичным выводом типов ( >>1985129 >>1985136 )
>>2019521
>Тебе придется потратить много времени
Не пришлось бы, потому что оно уже существует https://github.com/metawilm/cl-python https://common-lisp.net/project/clpython/manual.html#python-syntax
Тем не менее, с твоей пикчей полностью согласен.
> Питон
hylang.org - Питон с макросами
> Hy is a Lisp dialect that’s embedded in Python. Since Hy transforms its Lisp code into Python abstract syntax tree (AST) objects, you have the whole beautiful world of Python at your fingertips, in Lisp form.
> hylang.org - Питон с макросами
А я о чем?
>>2019375
> Если тебе нужен лисп который работает с библиотеками питона, то Hy.
>>2019521
> Сексп для питона с макрами - это Hylang https://github.com/hylang/hy
Чувак пилит бэкенд clim'а для емакса
Чего чего пилит?
>>1971977
В схеме сидят какие-то смешные академические придурки которые не понимают что такое экосистема и зачем нужны качественные библиотеки параллельно тратя время на какую-то обстракную хуйню вроде юпеля.
Начал изучать Ракет. Написал пару либ. И тут придуреи решили выпустить ракет2 с синтаксисом питона. Охуеть.
А проект отдали какой-то ублюдочной организации переведя его на мит лицензию.
Но это ещё не всё.
Дефолтная хмл либа говно без базовых примеров.
Полез за помощью к адептам с научными степенями в рассылку, говорю - как ей вообще пользоваться и как мне парсить хмл по частям.
В ответах преобладало
>ну можно свой дсл написать для парсинга хмл
Ёбнутые. ДСЛ для ХМЛ, Карл.
Так у этих идиотов хоть какие-то либы есть и ГУИ. Остальные схемы вообще ниочём.
А коммон лисп это помойка из 90х вообще без профитов с бесконечной привязкой всего к няшной сишке. Нахуя вам лисп если у вас сплошная сигка в коде с вввернутым наизнанку синтаксисом?
Заглянул в доки Глайд схемы от ГНУ.
В ДОКАХ ВМЕСТО ОПИСАНИЯ ЯЗЫКА И ФУНКЦИЙ ЛИСПА ИМЕНА И ОПИСАНИЯ СИШНЫХ ФУНКЦИЙ КОТОРЫЕ ОНО ВЫЗЫВАЕТ.
ДЕГЕНЕРАЦИЯ.
>Начал изучать Ракет. Написал пару либ. И тут придуреи решили выпустить ракет2 с синтаксисом питона.
Шо?
>А проект отдали какой-то ублюдочной организации переведя его на мит лицензию.
ШО?
>А коммон лисп это помойка из 90х вообще без профитов с бесконечной привязкой всего к няшной сишке.
Шо?
>Нахуя вам лисп если у вас сплошная сигка в коде с вввернутым наизнанку синтаксисом?
Шо?
>Заглянул в доки Глайд схемы от ГНУ.
Guile?
>В ДОКАХ ВМЕСТО ОПИСАНИЯ ЯЗЫКА И ФУНКЦИЙ ЛИСПА ИМЕНА И ОПИСАНИЯ СИШНЫХ ФУНКЦИЙ КОТОРЫЕ ОНО ВЫЗЫВАЕТ.
Дай угадаю, раздел назывался PROGRAMMING IN C? https://www.gnu.org/software/guile/manual/html_node/Programming-in-C.html
Наброс про неразвитую экосистему схемы принимается, за остальной шизоидный высер - неуд.
>Нахуя вам лисп если у вас сплошная сигка в коде с вввернутым наизнанку синтаксисом?
И ничего там не вывернуто наизнанку. Сишка как сишка. Убедись сам https://github.com/y2q-actionman/with-c-syntax/#using-c-syntax-inside-a-lisp-function
Шучу, конечно. Все, кто хоть что-то писал на общелиспе, знают, что с сишкой он не имеет ничего общего. На самом деле это бейсик со скобками https://ideone.com/9ZcYdd
Про ракет смотри новости на сайте и архив рассылки за прошлый год. И видео с конференции.
> Дай угадаю, раздел назывался PROGRAMMING IN C?
Нет.
https://www.gnu.org/software/guile/manual/html_node/Asyncs.html
Например.
> Наброс про неразвитую экосистему схемы принимается, за остальной шизоидный высер - неуд.
Шизоидный высер у тебя в шипилявых трусах. Иди трусы постирай.
В лиспах даже автодоков из коробки нету. Только васянская хуйня слепленная на коленке непонятно кем. Если повезёт.
Не знаю как в других схемах а в ракете нету ебаного блока final в обработке ошибок.
Они там совсем ёбнулись.
Зачем вообще эти сраные трай фетч пилили в функциональном языке, придурки.
>Например.
>6 API Reference
>Guile provides an application programming interface (API) to developers in two core languages: Scheme and C. This part of the manual contains reference documentation for all of the functionality that is available through both Scheme and C interfaces.
>а в ракете нету ебаного блока final в обработке ошибок
dynamic wind со времён r4rs есть
В общем, разбирайся, нюфань, а потом пытайся набрасывать
> dynamic wind со времён r4rs есть
И что что есть? С точки зрения семантики и синтаксиса трай фетч это долбанутый костыль.
Это не касаясь ещё вопроса производительности этого говна.
> В общем, разбирайся, нюфань
Ой ты подумал что я про винд не знаю ведь ты такой умный, а не любить говно можно только от того что в нём не разобрался, а разобраться доступно только прошаренному двачеру из пр?
> а потом пытайся набрасывать
Ты сам себя затролел, я тут не при чём.
> А коммон лисп это помойка из 90х вообще без профитов с бесконечной привязкой всего к няшной сишке. Нахуя вам лисп если у вас сплошная сигка в коде с вввернутым наизнанку синтаксисом?
Бегом побежал показывать сплошную сишку, шизик. дается 30 секунд на размышления.
Вот тебе на закуску https://github.com/froggey/Mezzano
У коммон лиспа имеется достойная экосистема, стандарт и коммьюнити > 1.5 затейника. Из лиспов для написания чего-то большого с хоть с каким-то выбором библиотек ничего больше нет.
> В лиспах даже автодоков из коробки нету.
В лиспах и МОПа в стандарте не было. Ну ничего, надо было, все взяли и дружно прикрутили. Автодоки? Иди и и грепай ql на предмет doc, там десяток совпадений, зачем ныть то.
какии операции + -, бот, сишку говорю показывай
Продолжай использовать свою дырявую арифметику. Никто не мешает.
сначала была сплошная сишка, теперь дырявая арифметика, иди таблеток наверни, мань
То, что у вас математика дырявая в лиспах. А всё потому что, используют императивное говно, вместо ADT.
>12 новых сообщений
Ебать раздухарились. Я думал, что-то стоящее обсуждаете, а вы опять залётного нюфага кормите.
блеать, как таких шизов земля носит. дырявая тут только твоя мамка. крч, да, хватит тебя кормить, нахуй иди со своими высерами.
Тут вон Nyxt 2.0 выкатили, апи ломать больше не будут, наконец можно обживаться да писать расширения
>Иди и и грепай ql на предмет doc, там десяток совпадений
>>2039147
> Только васянская хуйня слепленная на коленке непонятно кем. Если повезёт.
>>2040829
>в стандарте не было
Стадарт и экосистема это разные вещи.
Глубоко похуй на стандарт если он на бумаге а не в виде унифицированных инструментов.
>Бегом побежал показывать сплошную сишку, шизик.
Как там у вас с оптимизацией хвостовой рекурсии? И как это связано с сишкой? Даю 30 секунд на размышление.
>>2041024
Выглядит как сишка, считает как сишка, но сишка ли это? Нет, это коммон лисп, совершенно не сишка, это как сишка которая делает как сишка кодится как сишка, но это не сишка потому что нотация другая.
Бросай уже набрасывать.
#f (eq? (+ #e0.2 #e0.1) #e0.3)
#f (eq? (+ 0.2 0.1) 0.3)
#t (eqv? (+ #e0.2 #e0.1) #e0.3)
#f (eqv? (+ 0.2 0.1) 0.3)
#t (= (+ #e0.2 #e0.1) #e0.3)
#f (= (+ 0.2 0.1) 0.3)
#t (= 1 1.0)
#f (eqv? 1 1.0)
открою тебе секрет - весь софт земли чуть менее чем полность - васянская хуйня. но из всей этой хуйни, тот что на лиспе, слепленный "васянами", зачастую оказывается достаточно годен.
> Только васянская хуйня слепленная на коленке непонятно кем. Если повезёт.
То есть ты даже не смотрел, да? Чем тебя не устраивают эти решения? Чем они васянские конкретно? А? Ну прально, ты не знаешь, тебе б только хуйни спиздануть на двачике и оправдать выбор своего любимого $language_name, где выбор $любая_хуйня_нейм сделан за тебя.
> Глубоко похуй на стандарт если он на бумаге а не в виде унифицированных инструментов.
С чего ты взял что он только на бумаге?
> Как там у вас с оптимизацией хвостовой рекурсии?
компиляторы оптимизируют когда могут. а что б уж точно - просто нужно писать определенным образом, надо знать как. гарантированной в стандарте нет.
>>2041123
впервые услышал про флоат арифметику? мои поздравления.
>То есть ты даже не смотрел, да? Чем тебя не устраивают эти решения? Чем они васянские конкретно?
Тем что они не являются стандартными.
Их много.
Тем что в одних проэктах может быть одно, в других, другое. Тем что нет стандартного решения которое диет из коробки и которое ИМЕЕТ ОФИЦИАЛЬНУЮ ПОДДЕРЖКУ от имени достаточно авторитетной сущности, будь то коммерческая или некоммерческая организация.
>тебе б только хуйни спиздануть на двачике и оправдать выбор своего любимого $language_name, где выбор $любая_хуйня_нейм сделан за тебя
Твои слёзы уж очень солёные, но я их все равно буду пить.
>С чего ты взял что он только на бумаге?
Так где стандарт документирования?
Стандарт оформления проэктов и библиотек?
Стандарт IDE ?
СТАНДАРТНАЯ БИБЛИОТЕКА где?
>Так где стандарт документирования?
>Стандарт оформления проэктов и библиотек?
>Стандарт IDE ?
>СТАНДАРТНАЯ БИБЛИОТЕКА где?
Так это же не сишекчка а лисп.
Тут всё стандартно совсем не так как в сишечки. Хочешь компилятор? На выбор 10, совсем не как в сишечке.
Хочешь редактор, на выбор 20, совсем не как в сишечке.
Хочешь стандартную библиотеку, доки? Ну сам напиши или скачай от васян_нейм и установи в васян_редактор через васян_плугин.
Ах да, тут очень стандартная флоат арифметика совершенно не как сишечке потому что лисп не как сишечка и считает правильно изкаробки.
> Тем что они не являются стандартными.
> Их много.
так, ну очередной землекоп пришел рассказывать нам про лисп-curse. можешь не останавливаться.
> ИМЕЕТ ОФИЦИАЛЬНУЮ ПОДДЕРЖКУ от имени достаточно авторитетной сущности, будь то коммерческая или некоммерческая организация.
нахуй пошел со своими авторитетными организациями
> Стандарт IDE ?
хаха, спок шиз. и да, перед знаком вопроса пробел не ставят, или тебя и этому за запартой не научили.
ПС дай угадаю, растопетух?
>Как там у вас с оптимизацией хвостовой рекурсии? И как это связано с сишкой?
Неужели лисп слизал tco у гцц?!
>это как сишка которая делает как сишка кодится как сишка, но это не сишка потому что нотация другая.
https://github.com/CObjectSystem/COS
О господи, а ведь он прав!
На самом деле, нет. Пиздуй изучать матчасть. Начать можешь с основных парадигм программированмя
>Так где стандарт документирования?
https://duckduckgo.com/?q=!clhs+documentation
>Стандарт оформления проэктов и библиотек?
asdf
>Стандарт IDE ?
slime
>СТАНДАРТНАЯ БИБЛИОТЕКА где?
Ты будешь удивлён, но в стандарте.
Зэкач просветительный, объясняем шизам очевидное since 2007
>LispWorks
Интересно.
Это во всех проектах используется или есть проекты в которых используется что-то другое?
SBCL следует стандарту? В поставке идут тулзы для автодокументирование по этому стандарту?
Что на счет GNU реализаций и прочих?
Вот например рандомная простая либа с гихаба.
https://github.com/rpgoldman/xmls/blob/master/octets-xml.lisp
В коде нет документирования функций.
Вообще никакого.
Документация отдельно от кода? Она IDE автоматически подхватится и отобразиться в редакторе кода?
Где она там в проекте вообще?
Правда очень интересно.
>Начать можешь с основных парадигм программированмя
>Common Lisp
>procedural
>C
>procedural
>ANSI Common Lisp
>C has been standardized by the ANSI
Алсо, я надеюсь что собравшиеся здесь эксперты за 100кк в секунду вообще понимают что такое АВТОдокументация.
Это когда твой код анализируются и автоматически создаётся шаблон для описания функции или макроса в спец формате прямо в коде.
А затем другая тулза этот спец формат комментариев читает и генерирует хмл штмл небо аллаха графики и деревья отношения объектов.
> Это когда твой код анализируются
статикоблядь детектед. набрасывай в другом месте. дегрод, зарепортил тебя.
>>LispWorks
CL HyperSpec. Гугли, просвещайся.
>В коде нет документирования функций.
>Вообще никакого.
Надо же, оказывается, не все документируют код. Этот мир не перестаёт удивлять.
>Документация отдельно от кода?
В коде. https://ideone.com/4RIxP9
Есть генераторы хтмл-документации, о которых упоминал анон выше.
>Она IDE автоматически подхватится и отобразиться в редакторе кода?
Если твоя среда умеет взаимодействовать с реплом.
Алекс, ты из телеграма и сюда уже протёк? Там больше не кормят, потому что в курсе, что ты долбоёб, да?
Хорошее начало, молодец. Теперь попробуй прочитать остальные слова в из тех статьей
Ух, американский институт стандартизации какой злой, говна в жопу анонам с двача заливает.
> > float,
В лиспе не флоат, в лиспе infinite precision
> > int
В лиспе не инт, в лиспе number, любой размер.
Если под флоат ты имеешь ввиду IEEE754, то да, в лиспе не флоат.
https://ideone.com/XIbG0e
https://ideone.com/9iUgJ5
>>IDE?
>Ахаза лох шизик какое иде что это вообще такое знак вопроса с прбелом111 неуч)))
>>Автодокументация?
>Блядь шизик тупой статикоблядь статикпбояди сиснули мне не больно ты шизик))
Господи, какой же пиздец.
почему мне должно быть больно, дурачок? естественно это все есть в CL, просто объяснять это шизу не имеет смысла. а пиздец у тебя в голове.
В настоящем лиспе 0.2+0.1 будет равно 0.3.
А это всё породия на лисп и замаскированная сишка.
Пиздец ты всратый шиз, конечно.
>>2041461
А что там по-твоему, шизоид?
В стандарте даны только рекомендации по минимальным разрядностям экспоненты и мантиссы на каждый из подтипов float. На практике там, ясен хуй, ieee754, потому что железо только его и умеет.
>не флоат, в лиспе infinite precision
В лиспе длинная арифметика используется только для целых чисел и дробей.
Неплохая лаба для студентов, но в реальности такое никто использовать не будет.
Судя по всему, у тебя слишком много свободного времени, поэтому дать ответ на этот вопрос будет твоим домашним заданием. Реализуй, можешь даже без трансцендентных функций, а потом нам расскажешь
Да-да, иди дальше байтики считать.
Чем так хороша CLOS? Где ей научиться?
Скобочкошизы, признайтесь уже, что это все просто толстый троллинг. Вы ведь не пишете на этом убогом синтаксисе и никогда не будете его использовать.
>Чем так хороша CLOS?
Множественной диспетчеризацией, комбинаторами методов, метаобъектным протоколом. Ну и он динамичен, как и весь лисп: например, можно в рантайме менять определение классов или даже класс объекта.
>Где ей научиться?
Art of Metaobject Protocol
(defun factorial (n) (if (= n 0) 1 ( n (factorial (- n 1)))))
Там где нормальный человек пишет
fac 0 = 1
fac n | n > 0 = n fac (n - 1)
Помню на хачкеле такое видел
>И кто же мешает тебе делать такое каким-нибудь макром
Ну так я и говорю, что ваш шизоидный скобочко-синтаксис - это просто жирный троллинг, вы сами им не пользуетесь, но зачем-то пиарите.
Наркоманская лапша же, я не язык
Ели уж так хочется ФП, то есть хачкель с простым и красивым синтаксисом
> Наркоманская лапша же, я не язык
Научись лиспу, а потом суди, баака.
> Ели уж так хочется ФП, то есть хачкель с простым и красивым синтаксисом
А с чего ты взял, что лисп это про ФП? В большинстве своем, кодовые базы на общелиспе - ООП.
>Там где нормальный человек пишет
>fac 0 = 1
>fac n | n > 0 = n fac (n - 1)
Лучше бы показал нам, как этому нормальному человеку с TH приходится страдать. Зато не скобки, да.
>Можно js превратить в s-exp
Видел где-то в инторнете как чувак гордился тем, что изобрел способ в JSON кодировать логику. А вот знал бы он про лиспы...
В Хаскель-треде спроси
Я использую макросы, реализующие pattern-matching в стиле Standard ML, мне норм.
>Это где вместо открытой скобочки один отступ слева добавляют
По-моему, это иначе называется.
https://docs.racket-lang.org/sweet/index.html
Неплохой способ превратить код в нечитаемую кашу.
https://github.com/wisp-lang/wisp/blob/master/doc/readme-original.md#project-is-abandoned
Даже автор на него забил, тебе-то он зачем?
Обколются своим алголоподобным синтаксисом, а потом по подъездам друг друга в жопу ябут.
От сложного синтаксиса таки пропадает, а разнообразие скобок является его косвенным признаком
>алгол
Что у тебя за фиксация на алголе?
Это был обычный процедурный язык, не особо популярный.
> От сложного синтаксиса таки пропадает
Нет, не пропадает. Пролог, к примеру, полон инфиксных, префиксных, постфиксных, скобочных операторов, однако гомоиконным от этого быть не перестаёт.
> Что такое гомоиконнсть?
Это значит, что все конструкции являются термами языка. Т.е ими можно свободно оперировать как данными.
На примере языка Prolog:
Есть конструкция языка (2 + 3). Что это такое? Это данные. К примеру (2 + 3 = X + Y) выдаст в консоли X = 2, Y = 3.
К слову, (2 + 3) в прологе это тоже самое, что и +(2, 3).
На примере Lisp:
Есть конструкция '(+ 2 3). Что это такое? Это данные. К примеру мы можем взять первый элемент терма: (first '(+ 2 3)) выдаст нам в консоли '+.
Или, к примеру, вычислить терм как нетерминал: (eval '(+ 2 3)).
Контрпример:
Возьмем типичный НЕгомоиконный язык - JS.
Возьмем тривиальную конструкцию языка: (2 + 3). Является ли сама конструкция терминалом? Нет. Т.е это не данные. Является ли JS гомоиконным? Нет.
Но справедливости ради, можно распарить код JS в AST и взаимодействовать с кодом как с данными, однако это обходной и сложный путь, тогда как в гомоиконных языках программа это и есть AST, и можно взаимодействовать с AST напрямую, силами языка.
Пример работы с кодом как с данными, напишем нетерминал, меняющий аргументы местами:
В Prolog:
swap(X + Y, Y + X).
Проверяем в консоли:
> swap(2 + 3, Y).
>> Y = 3 + 2.
В Lisp (Racket/Scheme):
(define/match (swap x y) [`(+ ,x ,y) `(+ ,y ,x)])
Проверяем в консоли:
> (swap '(+ 2 3))
>> '(+ 3 2)
> Можно ли сказать, что любой язык, у которого есть eval, является гомоиконным?
Нет ответ выше.
> Что такое гомоиконнсть?
Это значит, что все конструкции являются термами языка. Т.е ими можно свободно оперировать как данными.
На примере языка Prolog:
Есть конструкция языка (2 + 3). Что это такое? Это данные. К примеру (2 + 3 = X + Y) выдаст в консоли X = 2, Y = 3.
К слову, (2 + 3) в прологе это тоже самое, что и +(2, 3).
На примере Lisp:
Есть конструкция '(+ 2 3). Что это такое? Это данные. К примеру мы можем взять первый элемент терма: (first '(+ 2 3)) выдаст нам в консоли '+.
Или, к примеру, вычислить терм как нетерминал: (eval '(+ 2 3)).
Контрпример:
Возьмем типичный НЕгомоиконный язык - JS.
Возьмем тривиальную конструкцию языка: (2 + 3). Является ли сама конструкция терминалом? Нет. Т.е это не данные. Является ли JS гомоиконным? Нет.
Но справедливости ради, можно распарить код JS в AST и взаимодействовать с кодом как с данными, однако это обходной и сложный путь, тогда как в гомоиконных языках программа это и есть AST, и можно взаимодействовать с AST напрямую, силами языка.
Пример работы с кодом как с данными, напишем нетерминал, меняющий аргументы местами:
В Prolog:
swap(X + Y, Y + X).
Проверяем в консоли:
> swap(2 + 3, Y).
>> Y = 3 + 2.
В Lisp (Racket/Scheme):
(define/match (swap x y) [`(+ ,x ,y) `(+ ,y ,x)])
Проверяем в консоли:
> (swap '(+ 2 3))
>> '(+ 3 2)
> Можно ли сказать, что любой язык, у которого есть eval, является гомоиконным?
Нет ответ выше.
> > Можно ли сказать, что любой язык, у которого есть eval, является гомоиконным?
> Нет ответ выше.
Дополню, eval вообще не связан с гомоиконностью. К примеру в Prolog нет предиката eval. Однако от этого гомоиконным он быть не перестает.
Но можно определить eval самостоятельно (это делается до смешного просто):
eval(Str) :- read(Str, Term), Term.
> Art of Metaobject Protocol
он про клос спросил, а не моп. эта книга - немного адова для начинающего, она как референс мануал скорее.
>>2063760
https://lispcookbook.github.io/cl-cookbook/clos.html
Там пикрелейтед
Есть гайд на сайте ergoemacs
Есть eintr на сайте GNU
Есть практика... Ну тут как с любым другим языком :)
CL. Либ много. Если не нравится подход cl то можно макросами CL в Scheme превратить.
call/cc
В LFE посмотри.
> '(1 2 3 . (4 5 6))
'(1 2 3 4 5 6)
> (define (sum . numbers) (apply + numbers))
> (sum 1 2 3)
6
> (sum . '(1 2 3)) ; по идее (sum 1 2 3)
stdin::78: quote: bad syntax
in: quote
location...:
stdin::78
Что вообще пишут на лиспе?
Почему я вообще не могу читать код на лиспе? Даже Си выглядит лучше
В чем меметичность языка?
У кого больше яйца: у хаселя или лиспа?
>Лисп жив?
Pyhon и JavaScript - диалекты лиспа.
>Что вообще пишут на лиспе?
То же, что на Python или Ruby. Но почти всегда для себя.
>Почему я вообще не могу читать код на лиспе?
С непривычки.
>В чем меметичность языка?
В том, что на нём чаще пишут факториалы и фибоначчи, чем реальные вещи (как и на хаскеле, впрочем). SICP еще, да.
>У кого больше яйца: у хаселя или лиспа?
Лучше посмотри Standard ML.
> Лисп жив?
Да.
> Что вообще пишут на лиспе?
Квантовые вычисления, блокчейн, анализ естественных языков, финансовая аналитика, да хули я тебе перевожу, на читай https://lisp-journey.gitlab.io/who/
> Почему я вообще не могу читать код на лиспе
Потому что не дорос ещё
> В чем меметичность языка?
))))))))))))))))
> У кого больше яйца: у хаселя или лиспа?
У твоей мамаши-членодевки
Интерпретаторы JS и питона построены на тех же принципах, что и написанный 50 лет назад интерпретатор Scheme (хоть и у питухона они воспроизведены неуклюже). Интерпретируемые языки, которые лиспами уж точно не являются - APL, Forth, Smalltalk, Bash.
> Интерпретаторы JS и питона построены на тех же принципах, что и написанный 50 лет назад интерпретатор Scheme
И как это делает их диалектами лиспа?
И запомни, язык ≠ интерпретатор.
У JS сильно похожая на схему семантика, это и делает его "диалектом" схемы с довольно большой натяжкой. Питухон все-таки сборная солянка, там от лиспов мало что осталось.
диалект понятие довольно растяжимое, я согласен, но схема - это лисп (в общем понимании), а лисп - это прежде всего инфикс, скобочки и гомоиконность. не каждый дериватив можно считать диалектом, и если кто-то пиздит фишки из лиспов, это не делает его лиспом, особенно если не спиздили те что являются основополагающими.
Нет, ты.
В общем, SICP привёл меня сюда. Кто вы такие и чем промышляете?
> любом репе любого дистрибутива линукса
Под этот аргумент больше попадают петухоны-плюсы, на фоне которых и тикль, и лисп - хуйни без задач.
autotools, gdb, swig, maxima, gnucash, солитёр под Gnome в конце концов - это всё непрактично и неполезно? Толсто, друг, очень толсто, попробуй тоньше.
Универсального инструмента не бывает. Тикиль охуенен для наколеночных скриптиков с гуем, но не более.
Больно дохуя хочешь. Cljs бери. Или guile-gi попробуй или qt-light из курочки, но оно всё пиздец экспериментальное.
Анимации вроде были, но вообще удваиваю оратора выше, что ты хочешь от языка с настолько малочисленным и, что более, раздробленным сообществом?
Возьми лучше тикиль или общелисп с clog'ом
Не, мне без рантайма нужно.
Запили транспилятор сам. Возьми любой генератор парсеров для сишки, и переводи (foo bar) в foo(bar), а '(foo bar) в ["foo", "bar"]. Eval конечно не будет, печально, но вот макросы можешь какие угодно прикручивать.
транслятор это другое
Типа такого чтобы было. Все эти мышкоёбские менюшечки конечно очень выручали первое время, но когда основные шорткаты уже знаешь, а в коде ориентируешься используя плагин на vim-like хоткеи, надобности почти в ней не осталось. Но когда полез убирать, оказалось, что темы меняют лишь палитру для подсветки синтаксиса.
Судя по священнику на фоне кода, ты все настройки уже облазил :3
Значит, остаётся выпиливать менюшки из кода или M-x menu-bar-mode
Я пытался юзать спейсмакс+geiser, чтобы не ебаться долго с конфигами, и получить среду изкоробки. В итоге, с непривычки, я больше времени проводил в попытках понять что я такое нажал, и что это в результате сломало. Быстро понял, что вместо изучения языка, я больше изучаю инструмент, который возможно даже не буду потом использовать.
До этого вообще в консоле mit-scheme запускал и скармливал ему по строчке. Но там любая очепятка вела к тому, что он вис, и приходилось его снимать и начинать с начала.
А с ракетом я будто опять в школе оказался, с визуал студио2008 и сишечкой. Прямо давно утраченная зона комфорта.
>>2179540
Я надеялся, что либо где то будет опция/плагин перехода в фуллскрин(как на втором пике) и обратно. Либо перекрасить отрисовку рамки окна. Разве ракет не в фаворите у хипстеров с тёмными темами и хацерскими шрифтами? Сколько не смотрел, только colorscheme'ы для разметки находил.
Сейчас я вообще набираю/дебажу задачки в gedite, и постоянно копипасчу в ракетку туда-сюда.
ты уверен что тебе нужен гейзер, а не
тупа рэкет-мод? https://github.com/greghendershott/racket-mode
и спейсмакс лютое говно, этот хелп-бинд на пробеле прост верх идиотизма, я как его попробовал, так и решил свой конфиг пилить. еще можешь посмотреть https://github.com/hlissner/doom-emacs , он вроде норм. если пойдешь этим путем, не стесняйся заводить M-x erc прямо в емаксе и заходить на #emacs, спрашивать что к чему.
> А с ракетом я будто опять в школе оказался, с визуал студио2008 и сишечкой.
вообще жиза, да, у меня приятные воспоминания синего экрана борландского турбо паскаля и построчный дебаг и 2д графика.
> Быстро понял, что вместо изучения языка, я больше изучаю инструмент, который возможно даже не буду потом использовать.
будешь, т.к. другие вдруг начнут казаться лютым говном. но я не агитирую, емакс может отожрать немало так времени, особенно если не знаешь другого емаксера, который будет тебе подсказывать как что делать и как делать не надо.
> Настройки по отрисовки окон опенбокса дрракет игнорирует.
заведи баг, епта. если все устраивает кроме этой рамки, то это самый простой вариант. ну или pull-request.
>не знаешь другого емаксера, который будет тебе подсказывать как что делать и как делать не надо.
В тележке русскоязычное коммьюнити в соответствующем канале вроде весьма дружелюбное, покажут-подскажут и между собой посраться не забудут
>и спейсмакс лютое говно, этот хелп-бинд на пробеле прост верх идиотизма
https://www.spacemacs.org/doc/DOCUMENTATION.html#emacs
>In Emacs style the leader is available on M-m. It is possible to toggle it on and off with SPC t E e and M-m t E e
Но вообще, дум лучше, да
четкий пример тупого пидоранделя, который далёк от мира CS насколько это возможно
под стать уебищному треду, даже про LispOS ничего нет
Только сейчас обратил внимание, что на оп-пике убит растокраб. Так совпало, или есть обоснованная неприязнь к новомодному языку?
Есть.
https://programming-language-benchmarks.vercel.app/problem/spectral-norm
>2.cl 1034ms 41.6MB sbcl 2.1.9
>7.rs 1061ms 2.3MB rustc 1.55.0
Никто не любит тормозные недоязычки да ещё и с фашистким компилятором
Рад, что у него всё хорошо.
А с ОС что? На реальном железе уже запускается? Что там с экосистемой? Порт McCLIM сдвинулся с состояния proof of concept?
Давно не следил за новостями проекта.
>На реальном железе уже запускается?
https://www.fitzsim.org/blog/?p=445
Оказалось, что уже - да. Круто
Статья о том, почему Common Lisp - идеальный выбор для геймдева: https://filebox.tymoon.eu/file/TWpNM053PT0=
>Abstract
>Games face an interesting challenge. They require rapid development, are highly interactive, and pose hard real-time performance constraints. While smaller games these days have also been developed in dynamic languages such as Python or Lua, traditionally engines are still written in static languages like C++ and C, with an additional scripting languages on top to handle game-play mechanics. Common Lisp offers an environment that’s both dynamic and performant enough to allow for a full stack game development system that is highly favourable to fast iteration and modular design.
Чел, ты...Ребята, делойте пожалуйста игры на лишпе. Он не так сильно сосёт как вы думаете, правда!
>>2182015
>ты уверен что тебе нужен гейзер, а не тупа рэкет-мод?
>да, кстати, почему ракетка а не сл?
Потому-что сыкп(хотя чем дальше, тем больше соблазн в htdp переключиться). Следовало это в первую очередь продекларировать. Возможно, стоило спрашивать в профильном треде по учебнику, но там народ, как я понял, либо задачки в онлайн-интерпретатор загоняет(zoomer-way), либо уже прошаренные емаксеры, которые на IDE смотрят как на говно.
Я конечно благодарен, что ты тут со мной нянчишься пропихивая под покрывалом свой емакс, но если у тебя и дорога путанная, и конь необъезженный, и маршрут в голове лишь примерный, то так ты никуда не приедешь. В те времена, что я пытался юзать спейсмакс, кончилось тем, что я просто застопорился на бесконечных затупах между знакомыми вим-лайк и найтивными кейбиндингами и забил на полгода. Потом сдался, накатил дракет, и опять поехал потихоньку. Неосилятор конечно, каюсь, но лучше пердеть потихоньку в правильном направлении, чем, как хрестоматийный вкатывальщик, понаставить себе расширений, хипстерских шрифтов и нескучные обои и опять сидеть смотреть аниме, выгорев так и не начав.
Всё что надо человеку, занимающемуся по учебнику, это решать задачи из учебника, пользуясь синтаксисом и набором функций данными в учебнике. А не разбираться, чем elisp его любимой "оси" отличается от схемы, у которой зачем-то есть отдельные реализации. Ну а совет "выпиливать менюшки из кода" человеку, который не может в конфигах разобраться, это конечно топ
Я drracket'ом не пользуюсь, подсказать не могу. Но если ты в настройках не нашел, то, значит, это не настраивается.
Попробуй закомментировать эту строку
https://github.com/racket/drracket/blob/master/drracket/drracket/private/main.rkt#L638
HtDP проще, как утверждают авторы, отлично подходит новичкам и почти не содержит математики. Кстати, https://www.edx.org/course/how-to-code-simple-data - курс, основанный на HtDP (правда, стоит сотню баксов).
Jak and Dexter, Crash Bandicoot, The Last of Us.
Щас ещё Шинмерыч Kandria выкатит.
Почему сотню баксов? Платишь ведь только если тебе нужна бумажка.
Задания после видео доступны только при апгрейде за соточку. Про финальный проект не знаю - ещё не дошёл.
У CL динамическая натура, поэтому не надо ебаться с перекомпиляцией и перезапуском на каждый чих, можно прямо на ходу корячить работающую игру, менять/дописывать код. С производительностью полущ чем у общепринятого скриптоговна, а если не увлекаться CLOS или static dispatch навернуть и аккуратно ходить мимо GC, то вообще сахар.
Он ещё тему DSL опустил, кстати, а это ещё один жирный плюс.
Сейчас бы, кстати, имели лисп в ААА-игорях, если б Sony не давили на Naughty Dog, которые активно лисп использовали. Увы, японские собаки язык невзлюбили.
Что, кстати, странно, в коммьюнити дохуя японцев-лисперов, тот же бракодел Фукамачи, или Кеничи Сасагава, который свой какой-то диалект пилит и на ютуб выкладывает, или вон г-н Фуцуя, который тоже вон какую-то 2д дрочилку на твиче пилит fusuya04.
По поводу Фукамачи хотел спросить. Его этот веб-стак имеет практическое применение?
Сам не пробовал, но выглядит оно очень живо.
( \ \ ) \
B( ) \ ) ) B
e( `. ) ) : e
a` ) ) \) ) a
t \ ) ) ) \\\ --__ \\ : t
i \ \) _--~~ ~--__) \ ) i
n \ \_-~ ~-_\ ) n
g \_ \ _.--------.______\) ) g
\ \______(( _ ___ _ (_(__H \ )
t \ . S ___) ______ (_(____t ) ) t
h (\ ) I ____)) APPLY\ (_____D )_) h
e ( (\) C_____) EVAL ) (___P ) \ e
( ( _P_____)\______) )) _) ) \
a ( \ )__ \\_________)) (__) ) a
v ( \ \____) `---- --' ) v
e ( \_ ___\ )_ _) ) e
r ( ) ( ) \ ) r
a ( ) ( λ ) \ ) a
g ( ) ) ( ) \ )g
e ( ) ) (__)(___) ) )e
s ( ) ( ) ) )s
( ) ( ) ) )
(((L I S P )( L I S P ) ( L I S P ) ( L I S P )))
Макаба пробелы съела. Может это такая пассивная вайп-защита.
> хоть самопорождающие кластеры метапарадигм
А вот сейчас поподробнее можно, сударь? И на сурц, если таковой имеется, хотелось бы взглянуть.
Спасибо!
У меня такой вопрос.
Является ли лисп полноценным функциональным языком?
Я начинал прогать с питона, и многие концепции познавал через него. Потом пописал пол года на го, и он мне помог понять новые концепции: типизация, замыкания, зачем передавать функции как аргументы (в питоне в этом нет острой необходимости), etc.
Так бустанув своё понимание, хочу освоить какой-нибудь функциональный язык, т.к. слышал, что он сильно ломает мозг и повышает скилл разработчика.
Долгое время смотрел на haskell, но я пользуюсь emacs'ом, и lisp был бы мне полезен. Также недавно начал пользоваться инструментом для заметок logseq. Бэк для него тоже написан на лиспе, а именно на clojure. И вот теперь я смотрю на lisp как на очевидного кандидата.
Вот теперь меня мучает вопрос, стоит ли учить лисп именно ради познания концепции ФП как таковой и буста своих разработческих навыков.
Даже питон является функциональным, потому что в нём есть первоклассные функции. Конкретный язык - вопрос удобства, но на какой-нибудь scheme или clojure действительно удобнее писать ФП код, чем на питоне.
Ну в питоне можно писать как на ФП, но одно дело есть возможность, а сдругой стороны вынуждение писать в определенной концепции. Вот в go как раз передача функции как аргумент это почти необходимость, также как и типизация.
Хочешь выбрать лисп исходя из субъективного и бесполезного мнения(они все тут такие на харчке) рандома из /б/ треда с привкусом программирования? - Бери схему, лучше ракетку. Для борщей самое оно.
Си не становится функциональным потому, что в рантайме нельзя создавать новые функции, следовательно, функции в нём не являются первоклассными объектами. Учишь вас блядь, учишь, нихуя запомнить не могут. Ракетка норм кстати до тех пор пока быстродействие не волнует
Coalton - это обычный Common Lisp, поверх которого прикрутили статическую систему типов, которая всё равно хуже того, что есть в Haskell. Нахуя так делать - непонятно, ну кроме разве что только для "мам, смотри как могу!"
Я на хаскеле не умею, я у мамы лиспер.
>Coalton - это обычный Common Lisp
Он настолько же общелисп, насколько кложа — ява.
>которая всё равно хуже того, что есть в Haskell
Точно такая же, за вычетом бесчисленного количества ghcшных расширений.
Тыкал одну из ранних версий и, помнится, помимо обычных макросов в нём был аналог лиспового compiler-macro. Но сейчас листаю ман и ничего подобного не вижу. Их выпилили или я в шары долблюсь?
> Он настолько же общелисп, насколько кложа — ява.
А что, в кложе можно написать
(defn pipiska [huynya]
`Java.Kal.do-go(huynya))
? Тому-що общелисп плескается внутри коалтон форм борщ в тарелке.
И да, ебать, какая-то движуха наконец-то тут за сколько месяцев, с началом каникул, братишки!
>А что, в кложе можно написать
>
>(defn pipiska [huynya]
>`Java.Kal.do-go(huynya))
Да, только без ` и скобки должны стоять вокруг выражения, а не аргументов.
> скобки должны стоять вокруг выражения
ну то есть джава синтаксис не поддерживается. так бы и сказал
коалтон первокалссно поддерживает коммно лисп, потому-что он на нем написан, поэтому не стоит приравнивать эти вещи
>коалтон первокалссно поддерживает коммно лисп
Нихуя. В коалтоне строгая статическая типизация (не говоря уж об отличающейся семантике), ты не можешь просто вставить нетипизированный лиспокод. Для этого есть специальная форма (lisp <тип> <тело>)
Короче ладно, мы ни о чем спорим, я просто сказал что кложа к джаве не так относится как коалтон к общелиспу. Коалтон это миниязык (дсл) коммон лиспа, а подзалупная кожура это сама по себе отдельный язык который бегает на виртаульной джавамашине, и просто дергает джаваапи. Для нее пришлось писать отдельный байткод конпелятор. Поэтому утверждение
> Он настолько же общелисп, насколько кложа — ява.
тупа nil.
> (lisp <тип> <тело>)
это и есть первоклассно.
>Коалтон это миниязык (дсл) коммон лиспа
Коалтон хоть и реализован поверх рантайма общелиспа, но это отдельный язык общего назначения со своей семантикой, системой типов, стандартной библиотекой и т.п.
>(дсл)
Значение знаешь?
>это и есть первоклассно.
Значение знаешь? Тебе небось и взаимодействие с сишкой через FFI — первоклассно.
> поверх рантайма общелиспа
лол коалтон это макрос, он о рантайме не знает ровном счетом нихуя
>> (дсл)
> Значение знаешь?
domain-specific language
>> это и есть первоклассно.
> Значение знаешь? Тебе небось и взаимодействие с сишкой через FFI — первоклассно.
а у тебя кложа на джаварантайме уже как макрос в лиспе.
чел, лучше скажи, уже затарился на НГ и дергаешь припасы раньше времени?
>лол коалтон это макрос
Ага, а кложура — это класс.
Ты, по всей видимости, уже сам глаза во всю заливаешь.
Это не надстройка наподобие typed racket или core.typed, как ты думаешь, а, грубо говоря, хаскель (Хиндли-Милнер с классами типов, каррированные функции по-умолчанию, do-нотация с монадами, да даже стандартную библиотеку почти 1-в-1 слизали), но с лисп-подобным синтаксисом и энергичными вычислениями по-умолчанию. Собственно, они сами это во введении и пишут, мог бы попробовать прочитать прежде, чем влезать в спор.
ладно с НГ, братишка, ты во всем прав
1. Малоизвестный ЯП => мало долбоёбов в коммюнити
2. Функциональщина. Зацепило еще когда глядел хаскель
3. Expressions. Это когда можно делать вот так ((if (> 1 0) + *) 3 4)
4. Какая-то там связь с ИИ
Не нравится:
1. Ебаный маскот
2. Нет нормальных компиляторов (для Common Lisp, у Scheme охуенный Chicken, например)
3. Дохуя диалектов и вроде как нет основного (Common Lisp тут вроде все обоссали)
4. добавить еще какую-то придирку
Подойдет ли мне лисп? Я хочу писать минипроги для себя и автоматизировать процессы. Ибо я хуй, которому в падлу учить баш А еще было бы оч круто писать что-то для веба. Аля парсеры. Шарю за питон. Начал читать SICP и нраица сё. Но вот шчхеме язык который вроде все на хую вертели. Алсо я что-то вообще не вдуплил, а как можно имаксом в здравом уме пользоваться. Тип для винды какой-то вообще кривой порт. Имакс дохуя весит. Выглядит как говно. А еще он сложный. В плохом смысле сложный. Какие-то буферы там, хуй проссышь. А еще он банально НЕ УДОБНЫЙ сука. Я люблю вим. Вим классный и вкусный. Но почему-то лиспобояре любят имакс. Почему? Мне типа нравится вот эта идея МЕТАпрограммирования и когда тебе дают не инструмент для решения задачи, а инструмент для создания инструментов, вот это вообще найс философия. Но что-то особо профита я не вижу. Там анон выше писал, что для парсинга XML для Рэкэкта ему посоветовали свой язык написать. Вроде как хуйня ебаная. Да и вообще рэкэт как-то ебаный ЯП, вроде всё ок, а нихуя не понятно, нахуя оно надо. (Если че я читал про рэкэт)
Анон, дай совет. Как вкатиться и стоит ли оно того. Потому что чувствую, что илитарием буду
>>2. Функциональщина
Опять двадцать пять... Пора уже в шапку добавить
> Нет нормальных компиляторов (для Common Lisp,
У общелиспа как раз таки с компиляторами всё в порядке
https://programming-language-benchmarks.vercel.app/problem/spectral-norm
https://programming-language-benchmarks.vercel.app/problem/nbody
>у Scheme охуенный Chicken
Chez же. Chiken такой же тормоз, как ECL.
SBCL говно ебаное. Так и не понял, как им пользоваться. Очень неудобно. И ошибки ебано выводит. а CLisp сдох давно
>Так и не понял, как им пользоваться. Очень неудобно.
Ну, тогда пожелаю тебе в новом году разобраться. Ты будешь удивлен, насколько процесс разработки на общелиспе удобнее, чем в других языках.
>а CLisp сдох давно
Это ж не JS, старая версия работает не хуже, чем прежде.
Да и шевелится он ещё https://gitlab.com/gnu-clisp/clisp/-/commits/master
> общелиспе удобнее, чем в других языках
Ладно, но почему он, а не какой-то другой диалект? Мне, например, нравится scheme за минимаализм, однако я хочу библиотеки и коммьюнити
>но почему он, а не какой-то другой диалект?
Зачем себя ограничивать одним языком/диалектом?
>нравится scheme за минимаализм, однако я хочу библиотеки и коммьюнити
Такова уж цена излишнего минимализма.
> Зачем себя ограничивать одним языком/диалектом?
Анон, я я не ограничиваю. Я уже пьяный. Я хочу мацать жопу. тк бля погоди
тк аквто Я не ограничмвааю себяю Я уже знааю питон и си синтаксис. Поэтому для меня лисп это экзотика. Я с ним знаком наминально. вотсс ти И вот я как NEWCUMER не могу сказать а что мне таки учить твой каман лисп или что-то другое. Мне нет разницы так то. Но ывр ребята клевыёе вы мне нрваивитесь поэтому я и решил начать учить лисп. вотттсс. Но я хуйовый прграмист и даже не програмист я даже думааю вы меня погоните ссаными тряпками , ибо я хуйня. Но я все раавно буду учить (можжет быть))
>Ладно, но почему он, а не какой-то другой диалект? Мне, например, нравится scheme за минимаализм, однако я хочу библиотеки и коммьюнити
Clojure смотри тогда. Но она популярнее, чем CL, CL более трушный, что ли.
> ошибки ебано выводит
Это потому что ты не осилил емакс, в нём эксепшены б-жественно выводятся и ими волшебно можно управлять.
> Я люблю вим. Вим классный и вкусный.
Я тоже, братиш. Специально для нас с тобой придумали evil-mode, а также Spacemacs/Doom emacs, если уж совсем впадлу ебаться с настройкой емакса (хотя там и ебли как таковой нет, всё тот же лисп внутри, только странноватый).
> Если не брезгуешь явой.
Да, брезгую.
>>2253326
> CL более трушный
Собственно вот эта часть мне до сих пор неясна
> тот же лисп внутри, только странноватый
Читал много статей на этот счет. Вообще, да, странная фигня
> не осилил емакс
Я очень пытаюсь, да. Но все же не вижу пока прелестей, кои бы окупили недостатки. Я случайно заметил, что имакс очень жирный. Он весит сравнимо с vs code. А это просто неприлично много для консольного текстового редактора. Перемещаться по словам неудобно. Жать на ctrl неудобно. А менять на capslock тупо. И т д, и т п. нутыпонел
Не вижу смысла юзать
>evil-mode
, когда есть vim. То есть это симуляция работы другой программы для того, чтобы просто потому что. Это тупо. Это как купить вагину мастурбатор и просить тян подержать её, чтобы ты мог её трахнуть
У тебя на скриншоте не емакс, а Portacle - это емакс обвешанный opinionated плагинами по самое немогу. Сам по себе емакс весит вдвое меньше.
> Это как купить вагину мастурбатор и просить тян подержать её, чтобы ты мог её трахнуть
Расскажи это M$-фанбоям, которые жрут WSL и нахваливают.
Я в evil-mode не вижу проблемы, в массе редакторов есть режим эмуляции vim. Сам 10+ лет угорал по vim, потом года три назад переехал на emacs и не жалею ни о чём, одно из лучших решений в моей жизни.
Попробуй Spacemacs, базарю, ещё захочешь.
Капча как бы намекает, что емакс - для настоящих спецагентов
Если ты не против, то я хотел бы задать тебе блиц опрос, как пользователю имакса
1. Твоё мнение о Столлмане в двух словах?
2. Если ли тян в данный момент?
3. Листва? Если нет, то когда был первый раз?
4. Удобно ли пользоваться имаксом на шинде?
5. Можно ли писать полноценные программы на ELisp?
6. Самое главное преимущество имакса?
7. На сколько % лисп сообщество гейское в хорошем смысле?
>Я очень пытаюсь, да. Но все же не вижу пока прелестей, кои бы окупили недостатки.
Не можешь срать - не мучай жопу.
https://lispcookbook.github.io/cl-cookbook/editor-support.html
>>2253684
>А это просто неприлично много для консольного текстового редактора.
1. Емакс НЕ консольный.
2. 90% объема - батарейки на все случаи жизни. От org-mode и психотерапевта до почтовика с веб-браузером.
>$ rpmquery -ql emacs emacs-x11 | xargs du -sh | sort -h | tail -n10
4,0K /usr/share/metainfo/emacs.appdata.xml
8,0K /usr/share/man/man1/emacs.1.gz
20K /etc/skel/.gnu-emacs
32K /usr/bin/emacsclient
44K /usr/bin/ebrowse
136K /usr/share/X11/app-defaults
6,0M /usr/bin/emacs-x11
6,4M /usr/bin/emacs-gtk
21M /usr/lib/emacs
122M /usr/share/emacs
> 1. Емакс НЕ консольный.
Курица не птица, баба не человек
> 2. 90% объема - батарейки на все случаи жизни. От org-mode и психотерапевта до почтовика с веб-браузером.
И вот как после такого не говорить, что GNU is bloated? Вроде как ногоед любит дрочить на unix style и unix way, но выясняется, что на деле его программы также же раздутые как и он сам
Чую, что сильно отдалились мы от темы треда. Таки надо поставить вопрос ребром: стоит ли дроч EMACS того, чтобы лучше понимать лисп и получать анальную блажь удовольствие от процесса написания программ на лиспе?
>И вот как после такого не говорить, что GNU is bloated?
"Bloated" про раздутость кода системы, а не про количество софта под неё. Ты просто забываешь, что emacs - не редактор, а операционная системаплатформа программируемых текстовых буферов.
Так что всё там юниксвейненько, не переживай.
Не вопрос
1. Мой кумир
2. Сейчас нет
3. Нет. Первый раз в 26, кажется.
4. Понятия не имею, я не пользуюсь шиндусом уже лет двенадцать.
5. Можно, такие упорыши есть в чяте @emacs_ru, но я их не одобряю
6. Гибкость. Ты можешь его как угодно гнуть под свой workflow, шуточка из xkcd пикрелейтед не на пустом месте возникла.
7. В русскоязычном сообществе встречал много типов с аниме на аватарке, но вообще вроде ненамного.
А мегабайты на твоём жёстком диске тебе по талонам выдают, да?
>7. На сколько % лисп сообщество гейское
Вопрос провокационный, ящитаю.
Общеизвестный факт, что всех геев-пидорасов делят между собою xcode и vscode. В хорошем они смысле или плохом - не знаю, не проверял.
Потому что для своих задач он подходит. С одной стороны датахлебушки, которым нахуй не нужно ебаться с памятью и особенностями низкоуровневых языков, ведь за них это делают другие люди с помощью биндингов. С другой веб-макаки, так как средний проект на пистоне залетает на ура при грамотной архитектуре.
В целом, язык должен быть удобным для бизнес-задач, а каких-либо киллер фич, которые бы выделяли бы его на фоне других языков, на данный момент у лиспов нет, так как их уже спиздили до этого. Особняком стоит кложа, которая присосалась к жабамиру.
Синтаксикс тоже очень много значит. Когда пилили жабаскрипт, то пытались сделать его похожим на жабу, что бы другим программистам было привычно смотреть на код, а у лиспа до сих пор скобки, которые многих отталкивают.
> каких-либо киллер фич, которые бы выделяли бы его на фоне других языков, на данный момент у лиспов нет, так как их уже спиздили до этого
спиздить по-отдельности не достаточно, нужно что бы они были все вместе, это во первых. во вторых спиздили мизер и если ты думаешь что у него нет киллер фич, тебе пропагандисты просто насрали в мозг, либо ты сам себе насрал в мозг. это очевидно каждому кто хоть даже палочкой тыкал в лисп. меняй методичку.
< у лиспа до сих пор скобки, которые многих отталкивают.
ну так дурачков отталкивают, это и хорошо
> каких-либо киллер фич, которые бы выделяли бы его на фоне других языков, на данный момент у лиспов нет
Пиздун. У лиспа всё еще не все спиздили.
Лисп позволяет не просто создавать более утонченные приложения, но и делать это быстрее. Практика показывает, что программы на Лиспе выглядят короче, чем аналоги на других языках.[...]
Суть Лиспа можно выразить одной фразой – быстрое прототипирование. На Лиспе гораздо удобнее и быстрее написать прототип, чем составлять спецификацию.[...]
С ростом мощности сред разработки и увеличением абстрактности языков стиль программирования на Лиспе постепенно заменяет старую модель, в которой реализации предшествовало проектирование. Согласно этой модели баги вообще не должны появляться.[...] Гораздо полезнее предполагать, что спецификация будет реализована с ошибками, а в коде будет полно багов.Это как раз та идея, на которой построен новый подход. Вместо того чтобы надеяться на безукоризненную работу программистов, она пытается минимизировать стоимость допущенных ошибок. Стоимость ошибки –это время, необходимое на ее исправление.
ANSI Common Lisp Пол Грэм
Плюс метапрограммирование
Плюс возможность "думать на лиспе", т е в твоей голове может даже не появляться какого-то простого и элегантного решения, если на твоем ЯП сделать это технически невозможно
Отчасти его отличает изначально заложенная возможность развиваться. Лисп позволяет программисту определять новые операторы, и если появятся новые абстракции, которые приобретут популярность (например, объектно-ориентированное программирование), их всегда можно будет реализовать в Лиспе. Изменяясь как ДНК, такой язык никогда невыйдет из моды.
Предположим, что теперь мы хотим написать функцию, которая принимает число n и возвращает функцию, которая добавляет n к своему аргументу:
; Lisp
(defun addn (n)
#’(lambda (x)
(+ x n)))
Как функция addn будет выглядеть на С? Ее просто невозможно написать
> киллер фичи для бизнеса?
какого бизнеса, дурачок? это язык, ему на твой бизнес однохуйственно. нет никаких киллер фич для бизнеса, есть просто фичи, точка. а бизнес интересуют только библиотеки и сколько макак можно нанять за цену ниже рыночной.
>ANSI Common Lisp Пол Грэм
>1995
Как оно там? Джава с питоном еще не релизнулись?
>Отчасти его отличает изначально заложенная возможность развиваться. Лисп позволяет программисту определять новые операторы
>Как функция addn будет выглядеть на С? Ее просто невозможно написать
>У лиспа всё еще не все спиздили.
И в качестве примера ты решил привести замыкания с лямбдами, которые сейчас есть вообще везде, кроме того самого си.
>>2254231
Кто там петушился ПРОМЫШЛЕННЫМИ СТАНДАРТАМИ? Единственный лисп на котором сейчас можно что-то писать это кложа, которые тут усиленно выписывают из лиспов.
Ты сюда посрать пришел? В чем твоя проблема? Ты же понимаешь, что твой изначальный вопрос уебаский?
> замыкания с лямбдами, которые сейчас есть вообще везде
Я привел тебе пример того, что может лисп
А что тогда лисп не может?
>Единственный лисп на котором сейчас можно что-то писать это кложа
Хайп прошел, кложа умерла.
Не может найти размер листа за константное время, например
http://clhs.lisp.se/Body/f_list_l.htm
> ПРОМЫШЛЕННЫМИ СТАНДАРТАМИ?
Я тебе скажу что такое промышленный стандарт: это батарейки. В схеме ты сам себе собираешь батарейки. ИНДУСтрия не хочет сама тянуть такое. ИНДУСтрии нужно готовое решение, что бы надо было поменьше думать, поменьше выбирать, и что бы была написана книжка "паттерны проектирования" для выбранного ей говна. Что бы код в соседней конторе был как под копирку тем что пишут они же сами. Вот что такое ИНДУСтрия.
А в общелиспе этих батареек хоть жопой жуй, а чего не хватило довезли в де-факто библиотеках. Он для промышленности был готов когда ты еще под стол бегал.
>>2254325
> Не может найти размер листа за константное время, например
Пошел нахуй отсюда, тролеглот школьный.
В 95 году несомненно он был готов, только вот почти 3 десятилетия прошло и индустрия немношк поменялась. Вот нужен мне драйвер для кликхауса, чет стухли батарейки.
Кликхаус это не проблема в языке как таковом. Это даже не проблема экосистемы. Просто индустрии нужны были индусы, а индусы по определению не смогут совладать с неведомой ебаной хуйней из космоса. Язык оказался слишком крут для массового потребления. Из это не проблема языка, опять же, а проблема образования которое прогнулось под индустрию. В конце концов все обосрались, и в итоге имеем нихуя. Не надо думать что успех какой-то технология напрямую зависит от качества этой технологии. Нихуя подобного.
>Просто индустрии нужны были индусы, а индусы по определению не смогут совладать с неведомой ебаной хуйней из космоса. Язык оказался слишком крут для массового потребления.
Лолбля, нихуя лиспы не сложные, просто нахуй не нужные после того, как из них спиздили все удобные фичи, а стандарт остался куковать в 95 году.
> как из них спиздили все удобные фичи
так пиздить надо не фичи, а философию и рельсы.
без которых, к слову, даже базовых фич не спиздить. скобки не спиздили. ты не поверишь, но скобки в 100500 раз удобнее любого говна которое тебе в глотку заливают в других языках. макросы не спиздили. те кто спиздил, на них смешно смотреть. клос не спиздили. динамические переменные не спиздили. суперинтерактивность не спиздили. компилируемость в машкод не спиздили. да нихуя не спиздили, только думают что спиздили.
а если кто-то что-то смог с имитировать в одном говноязычке, так это же позор, потому-что фичи то надо пиздить скопом а не по-одиночке и кое-как.
и их все равно никто никогда все не спиздит, потому-что тогда по определению получится лисп.
> как из них спиздили все удобные фичи
А я и не говорю что лиспы сложные. Они мощные. А синтактически они еще и гораздо проще блабов. Но индустрия для них не была готова. Кложа - это попытка окуклить лисп, поубавить угар с макросней, анально огородить ридер. Встать на кучу библиотек чужой экосистемы. Практически годно, правда все еще хуже по интерактивности чем трушный СЛ.
> а стандарт остался куковать в 95 году.
давай так, что тебе не хватает в стандарте?
> кложа
а еще, да, кложа это про угореть на иммутабельность, то есть опять же огородить программиста от ответственности и мощи, в этом случае от мультипарадигменности, выбора стиля и безумия какого-нибудь setf.
а, прости, не узнал. ты же тот самый очередной уебан, который определяет качество языка по его спросу на хедхантере. сорян, братишка.
если за работу на языке не платят деньги, то он ничем не лучше поделок в стиле болгенос с нескучными скобками
почему ты так думаешь?
>Практически годно, правда все еще хуже по интерактивности чем трушный СЛ
Трушный СЛ умер. Ты сначал про батарейки пиздел, а когда тебя носом тыкнули в их отсуствие сразу заблеял про плохую индустрию и макак-кодеров, которые просто не поняли это гениальное поделие.
> плохую индустрию и макак-кодеров, которые просто не поняли это гениальное поделие.
и в чем я не прав?
Ок, я опущен, теперь уёбывай.
В том, что гениальные поделия находят свою аудиторию. Взять тот же хаскель или элексир. У них есть большое комьюнити, области применения и относительно свежие либы и при этом это далеко не быдлокодерские языки. А лиспы стухли не найдя в настоящем своей ниши ни для промышленного кодинга ни для аутентичного борщехлебания.
если ты думаешь и лиспов нет аудитории, значит ты какой-то сказочный долбоеб. а еще зайди в соседний хаскель тред, потом расскажи нам какая там охрененная движуха, не то что эти ваши лиспы. но ты и так сказочный долбоеб, потому-что судишь о языке по кол-ву поклонников. анон выше тебе правильно сказал, съебывай отсюда со своими тупыми аргументами.
> элексир
> большое комьюнити
ну и пиздуй в это большое коммьюнити, зачем сюда прикатился?
> области применения
абсолютно любая, не то что блабы. даже дрова если не боишься кодогенерации.
Раз уж насрали почти до бамплимита, тащите мне ОП-пик для переката
>если ты думаешь и лиспов нет аудитории, значит ты какой-то сказочный долбоеб. а еще зайди в соседний хаскель тред, потом расскажи нам какая там охрененная движуха, не то что эти ваши лиспы.
>Аппеляция к аудитории
>о ты и так сказочный долбоеб, потому-что судишь о языке по кол-ву поклонников. анон выше тебе правильно сказал, съебывай отсюда со своими тупыми аргументами.
>"Не аппелируй к аудитории!!1!1!1"
>абсолютно любая, не то что блабы. даже дрова если не боишься кодогенерации.
Зачем, если есть современные плюсы?
> современные плюсы
Ладно бы nim или d вспомнил, но это...
Ты сам-то на них захочешь писать? Это ж не язык, а сплошной подводный каменьая скала. Большая, фрактальная.
>применяется ли лисп в серьезном бизнесе
Да: https://github.com/azzamsa/awesome-lisp-companies
>И вообще в каких сферах востребован?
Во многих, это язык общего назначения.
Lisp is a professional, scalable business solution based on industry-standard technologies such as parentheses, spaces and words. Its high-availability mechanism delivers five-nines availability for your mission-critical appliations, fitting your business needs. Its core runs on the Scheme or Common Lisp platforms, and is primarily written in Scheme, ensuring the application of industry best-practices and design patterns that will guarantee maximum customer satisfaction. It works in an object-oriented fashion, discovering business logic in a 2-tier architecture you can easily deploy to optimize cash flows, maximize profits and lower the Total Cost of Ownership, offering an early Return On Investment by converting visitors into customers and creating synergy between your different business departments. It works with your Business Intelligence, Enterprise Resource Planning and Content Management System solutions, and it provides an industry-leading Business Process Management module to facilitate workflow management and lifecycle management. A web services interface provides an enterprise-grade facility for business-to-business interaction and seamless integration with business logic. Lisp leverages core skillsets and world-class team synergy to provide clients worldwide with robust, scalable, modern turnkey implementations of flexible, personalized, cutting-edge Internet-enabled e-business application product suite e-solution architectures that accelerate response to customer and real-world market demands and reliably adapt to evolving technology needs, seamlessly and efficiently integrating and synchronizing with their existing legacy infrastructure, enhancing the e-readiness capabilities of their e-commerce production environments across the enterprise while giving them a critical competitive advantage and taking them to the next level.
>Russia
>SberBank is the largest bank in Russia, Central and Eastern Europe, and one of the leading financial institutions worldwide. Uses Common Lisp(SBCL) as a backend in a Metadata Management System for an internal cybersecurity big data.
Ох и шалун же этот Греф. Интересно, как скоро мешок финансирования их каргокульта сдуется?
Насоветуйте плез default фреймворк для такого решения, если есть. Как например джанга является для питона.
Ну блин, это ж для CL.
>>2255906
Алсо, у меня такой вопрос, чисто из интереса.
Если функции это данные, значит в мапу можно засунуть функцию. И в принципе, это уже будет похоже на метод конкретного "экземпляра", например
(def user {:name "Petushara" :rename (fn [old-petushara new-name] (:name old-petushara new-name))})
Типа тут для переименовывания буду вызывать "метод" rename.
Используется ли такой подход вообще в clojure (lisp), или это натягивание парадигмы из моей головы на глобус?
Ща конечно попробовал этим кодом воспользоваться, выглядит как хуй.
>Используется ли такой подход вообще в clojure (lisp), или это натягивание парадигмы из моей головы на глобус?
Второе. Мультиметоды тебе зачем даны?
не ебу что это. Вероятно еще не дочитал. В гошечке так бывают делают - функция как значение поля. Правда это не совсем метод, а именно что функция.
Ладно, спасибо. Читаю дальше
Присоединяюсь к вопросу в кои-то веки есть немножко свободного времени, чтобы поучить кложу
С чего бы это? К типу структуры привязывается функция, первым аргументом которой передаётся экземпляр структуры. Что это, если не метод?
Не хватает имплицитной передачи структуры в эту твою функцию. Читай Олега до полного сатори: https://okmij.org/ftp/Scheme/oop-in-fp.txt
Хм, действительно есть. Зачем же тогда костыли на мапах с "неметодами"? Попытка восполнить этот всратый полиморфизм без наследования?
Да хуй знает. Когда я видел это сиспользовалось, там была какая-то сложная инициализация, и функция захватывала переменные из внешнего скоупа. В последствии эта функция могла изменяться. Как метод она не была нужна, скорее как действие в зависимости от контекста.
А может это просто был говнокод.
>и функция захватывала переменные из внешнего скоупа.
В го есть замыкания?!
Да, неявное состояние в довесок к состоянию объекта -- это определённо говнокод.
>В последствии эта функция могла изменяться.
Вангую, что код втупую срисовывался с программы на языке с отличающейся идиоматикой. Скорее всего, то был эрланг.
Да возможно. Автор того кода на чем только не писал. Delphi, pascal, Java. А потом заставил меня писать свой язык для перекладывания жсона. Неординарные у него методы, зато я охуенный и очень интересный опыт получил.
>>2256381
Но явно присутствует в методах. И его явно можно передать типа self=...
> Но явно присутствует в методах.
Речь шла про имплицитность/эксплицитность передачи объекта в его же метод.
> И его явно можно передать типа self=...
Нет, нельзя.
Можно передать если вызывать метод у класса, а не инстанса.
Забыл уже с чего это все началось уже.
Это копия, сохраненная 30 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.