Лиспотред №15 /lisp/ 3142890 В конец треда | Веб
Лиспы - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

{Основные диалекты}
:: 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 - для тех, кто считает, что из смеси явы и лиспа может получиться что-то хорошее, или тех, кто интересуется креольскими языками, есть отдельный тред. Тред утонул, дом сгорел, отец-подлец бросил, поэтому поживёт сиротка пока у нас. Мальчик со странностями, но хороший, не обижайте. Шапка треда здесь 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://cl-community-spec.github.io/

::: Библиотеки
- https://awesome-cl.com/
- https://ultralisp.org/
- https://lisp-journey.gitlab.io/blog/state-of-the-common-lisp-ecosystem-2020/

::: Среда разработки
- https://lispcookbook.github.io/cl-cookbook/editor-support.html

Предыдущий тред: >>2681837
2 3142895
)))
3 3143679
Близок ли идеологически язык Forth и его потомки к лиспам?
4 3143889
>>143679
Скорее нет, чем да.

Всё таки это языки разных парадигм.

Форт конкатенативный, а лисп аппликативный.

Но общие черты есть. Конкатенативные языки стремятся к простому синтаксису, гомоиконности, вполне обладают функциональной базой (вычисление с помощью композиции).

А ещё их мощным плюсом является то, что они просто донельзя просты. Пока у многих языков реализация интерпретатора/компилятора является по сути чёрным ящиком с множеством магических вещей (типа GC, EventLoop, RefCounting, итд), то в конкатенативных языках даже GC не нужен, ибо нахуя, если переменных нет.
image.png73 Кб, 761x781
5 3145062
>>143889
Но в Форте же есть переменные. В Лиспе тоже есть.
6 3145063
>>145062
В конкатенативных и в стековых языках нет переменных в привычном понимании этого слова.
image.png34 Кб, 829x416
7 3145064
В чем отличие точечной пары от списка?
Я думал, что (1 2 3 4) - это просто сокращенная форма для (1 . (2 . (3 . 4) ) ), соответственно (1 2) и (1 . 2) - это одно и то же.
Но вот на ЛОРе пишут, что это разные вещи, мол, в NewLisp неправильно сделано.
8 3145069
>>145063
И в чем здесь отличие Форта от Паскаля или Си, кроме синтаксиса? Привычное понимание переменной - именновая ячейка памяти, содержимое которой можно читать и изменять. Т.е. вместо MOVB (1000), 123 или POKE 1000, 123 можно записать x:=123 или 123 x !

Вот в Erlang нет переменных, только аргументы функций и локальные константы. Соответственно x:=x+1 или x @ 1 + x ! не напишешь, а для изменяемого состояния нужно использовать рекурсию.
9 3145073
>>145069

> И в чем здесь отличие Форта от Паскаля или Си, кроме синтаксиса?


Насчёт Форта не знаю, но в других конкатенативных языках, типа Joy у языка действительно другие семантические свойства.
10 3145074
>>145069

> Вот в Erlang нет переменных, только аргументы функций и локальные константы.


Под переменными я имел в виду именно аргументы и константы.

Они есть в аппликативный языках, но не в конкатенативных. Там используется бесточечный стиль.

К примеру, в аппликативный языке мы пишем так:
fn x = print(x + 1)
Или более наглядно в лиспе:
(define (fn x) (print (+ x 1)))

В конкатенативном же:
: fn 1 + print

Тут отличия совершенно не в синтаксисе, а в том как вычисления выполняются.

Нет стека переменных, нет стека вызова функций. Есть только датафлоу. Это всё очень облегчает реализацию языка, даже не не уровне простого синтаксиса, а простого способа вычислять. Даже GC не нужен.
11 3145493
>>145064
(1 2 3 4) => (1 . (2 . (3 . (4 . nil))))
(1 2) => (1 . (2 . nil))
(1 . 2) => (1 . 2)
12 3148964
>>145074

> Нет стека переменных, нет стека вызова функций. Есть только датафлоу. Это всё очень облегчает реализацию языка,


Брейнфак еще проще в релизации!!!
13 3148976
>>142890 (OP)
Щас бы учить юзлесс язык, идеи которого уже внедрены давным давно во все популярные ОО-языки: php ruby python java c# c++ Go Dart.
# OP 14 3149150
>>148976

> идеи которого


Идеи лиспа: гомоиконность и мощнейшые макросы (которая к примеру позволяет добавить завтипы и линейные типы в язык).
Он может иметь любой синтаксис и любую семантику.

Ни один из перечисленных тобой языков этими свойствами не обладает.

Вот ты можешь в джаву, го, дарт встроить зависимые типы и вывод типов по Хиндли-Милнеру.

Нет, очевидно.

А в лишпе это просто делается макросами:
https://docs.racket-lang.org/ts-reference/index.html
https://docs.racket-lang.org/ts-reference/Experimental_Features.html#%28part._.Dependent_.Function_.Types%29

Можно даже ad-hoc полиморфизм как в Haskell добавить при желании.

Такого тебе никакой кастрированный golang не даст.
15 3214840
Стоит ли покупать книгу ansi common lisp за тысчу?
16 3221445
>>148976
Шо, в какой-то из перечисленных уже завезли полноценную поддержку горячей замены кода?
17 3221446
>>149150

>встроить зависимые типы и вывод типов по Хиндли-Милнеру.


>А в лишпе это просто делается макросами


Ну, не прям уж ПРОСТО, но по крайней мере это возможно сделать.
https://github.com/coalton-lang/coalton вот как раз такой проект для любителей ХМ, монадок и борщелиспа
18 3221483
>>142890 (OP)
Мы чисто хикки.
19 3221512
>>221483
Чисто Ричард?
20 3221674
>>214840
Не стоит даже качать бесплатно.
image17 Кб, 512x420
21 3222480
Нравится Clojure, но не нравится, что вместо документации на оф.сайте какой-то набор блогпостов, разрозненные статьи в разных местах. И ещё что это нормально - собирать стек с нуля, буквально на каждый чих искать какую-то отдельную микрозалупу. Ну это касается веба и новичков, типа меня, потому что я вообще не шарю, а тут каждую хуйню надо подбирать, о которой я вообще не слышал даже никогда и не знал, что они существуют.
Видел на эту тему пост на реддите, 6 летней давности, там чел тоже сокрушался. Видимо за 6 лет нихуя не поменялось. А жаль, прошёл несколько туториалов(встроенный в calva, несколько бесплатных книжек по основам), мне понравилось. Но нужно иметь бэкграунд предметной области, при чём не самый базовый, с кондачка не вкатиться. Может в других лиспах другая картинка, но сомневаюсь.
22 3222618
>>148976
Но эти фишки вставлены через жопу в уже переполненный и уберусложнённый синтакс, которому лишь бы поддерживать ОО. В лиспе ты просто напишешь код, а с другими языками и их заморочками будешь бороться. Даже с питоном.
аниме.webm17,6 Мб, webm,
640x360, 11:51
23 3223498
24 3226939
А правду говорят, что лисперы - ебанутые на всю голову?
image.png121 Кб, 700x800
25 3228397
>>149150
Нету у этом вашем (((ЛИШПЕ))) никакой гомоиконности. Вместо имени функции использовать лямбду нельзя.
26 3228405
>>222618
Угу, "просто пишешь", а потом материшься, потому что непонятно, какого хуя оно не работает, хотя должно. Как в каком-нибудь C++, где надо знать костыли всех стандартов. Какое же говно этот лисп.

Вот на JavaScript лямбды какие надо (если бы не было шизоидных преобразований типов, был бы идеальный язык).
27 3228414
>>228397
Все есть, в полноценном виде, не как у эрланга/пролога.
>>228405
Это разные пространства имен для символов, в зависимости от контекста будет взято значение из таблиц переменных или функций.
Согласен, решение хуйня, потому что кроме возможности назвать переменную list и т.п. ничего не дает, но на самом деле писать funcall/function надо довольно редко даже в весьма функциональном коде. если это так важно, то пробуй схему.
https://stackoverflow.com/questions/1020968/separate-namespaces-for-functions-and-variables-in-common-lisp-versus-scheme
>>228405

>Вот на JavaScript лямбды


Нет, алсо, после "жс" дальше можно не читать.

>если бы не было шизоидных преобразований типов


Если ты пишешь в 2024 на жс вместо тс на своем макакофронте, то ты долбаеб со скилбокса видимо.
28 3228464
>>228414

> про лисп написали плохо! напишу плохо про жс в ответ

29 3228471
>>228464
Я понимаю, если бы ты в пример привел Хаскель и Окамл, там действительно сделано как надо, но ты какую то хуйню из 90ых притащил и еще на типы пожаловался, хотя эту проблему в жс давно решили, но ты, в силу своей отсталости, даже про это похоже не в курсе.
30 3228900
>>228397

>гомоиконности


Значение знаешь?
>>228414

> потому что кроме возможности назвать переменную list и т.п. ничего не дает


https://docs.racket-lang.org/gui/button_.html
Даёт возможность не изобретать на каждый род сущностей по конвенции именования, чтобы не отстреливать себе ноги, случайно перекрыв локальной переменной пакет, класс, функцию, макрос, перезапуск и т.д
31 3230587
Шапка устарела
32 3230823
>>230587
Держи в курсе
33 3231649
>>230823
Держи
34 3232657
>>230587
Что устарело?
35 3233283
>>232657
Всё
36 3233413
Что можно написать на лишпе? У Зибеля только какие-то задачки на построение БД, но я что, зря учил Первый язык, жемчужину колдовства?
37 3233454
>>233413
Что угодно. Но что бы ты не писал, получается емакс.
38 3233480
>>233454
К слову, емаксобраузер https://nyxt-browser.com/
39 3235066
>>149150
при этом применение макросов ломает гомоиконичность, кхе кхе
40 3235164
>>235066
Нет, не ломает.
41 3236859
>>149150

>можносделать



Прошло миллион лет, а лисподебилы так и повторяют свою хуйню, как будто это 2011 и в /це нульчика
42 3237088
Как лисп обходится без статической типизации?
sage 43 3237473
>>237088
Лучше, чем какой-нибудь питухон
https://ideone.com/F3sGzg
44 3237481
>>236859

>можносделать


Причина подрыва? Да, можно. И уже сделали.
45 3243233
Писали ли вы свои лиспы? Это трудно?
46 3243341
>>243233

> Это трудно?


Да.
https://justine.lol/sectorlisp2/
sage 47 3244166
>>237481
перечень людей, кто хочет вместо полноценного языка со всем из коробки на уровне примитивов юзать прикрученную сбоку на макросах дрисню:
конец списка
48 3244470
Как называется интерфейс в стиле волков коммандер?
49 3244603
>>244470
Двухпанельный? TUI? Причем тут лисп?
50 3244632
>>244603
Да, его же легче к программе привязать чем к графическим гуям?
51 3245157
>>142890 (OP)

>гомоиконность


А как вы теперь свои гомоиконы пердолите когда в силе запрет пропаганды ЛГБТ?
52 3245159
А как лисперы зарабатывают на гречу? Вакансий видно только изредка и то только по Clozure. В остальное время приходится уходить в спячку?
53 3245657
>>245159
Скажу тебе по секрету, далеко не всем заказчикам есть дело до используемых технологий. Можешь хоть на бреинфаке с апл писать, лишь бы поставленная задача была решена.
54 3245676
>>244166
Ну и чем тот же коалтон отличается от "полноценного языка"?
55 3245795
>>245657
Но это только если техдир не узнает? Они обычно всякой экзотики как огня боятся.
На фрилансе т.е.?
56 3246099
>>245795
где угодно
договаривайся с тимой
все равно если на выходе тупо докер контейнер то все равно на чем писать
у меня в конторе так на эрланге пишут, такая же нишевая хреь как лисп
57 3246126
Я правильно понимаю, что в cl в вебе у вас всё делается дедовскими способами, просто есть веб сервер и всё, остальное надо писать самому? И ни о каком интерактивном вебе искаропки не идёт речи(максимум вебсокеты)?
59 3246279
>>246099
Ну.. на эрланге проще, даже пачка вакансий щас висит. Сам на эликсире пишу.
60 3246301
>>246279
Пачка это 3 штуки на всю Россию? Ну да, чуть побольше чем у лиспа, но программистов у него примерно столько же, лисп хотя бы в парочке вузов встречается.
61 3246559
>>246129
Ну т.е. да.
62 3246585
У эликсира хотя бы человеческая(одна из лучших) документация, есть отличная поддержка разных редакторов, менеджер проектов mix и т.д.
А скобочники за 146 лет существования лиспа так нихуя нормально и не сделали. Единственный полноценный редактор у них это емакс(пиздец), типа очень быстро в нём работать. Сука ты на нём пишешь не отрываясь по несколько часов что ли? Нет, ты точно также сидишь, думаешь, что-то пробуешь, потом эвалишь и так по кругу, где бля скорость нахуй. В одной операции, которая нужна примерно никогда? Хуита короче. Просто не экосистема, а какой-то балаган.
63 3246808
>>246559
Да, только голый ханчентут и статика. Статья именно об этом.
15941212862910.png194 Кб, 400x400
64 3246812
>>246585
Ты clhs/clus не нашел и плагин для своего вскода или что?
65 3246998
>>246812

>clhs/clus


нечитаемая хуета
если ты считаешь это нормальным, то ты походу из сторожки своей не выходил лет 40

>плагин для своего вскода


плагины есть, и вроде даже не один, но не сравнится с функционалом той же кложуры, максимально примитивная хуета, что есть, что нет
да и в целом почему в cl не запилили за столько лет нормальной инфраструктуры, тот же квиклисп как я понял по сути каждый раз загружается в репл при инициализации новой сессии, т.е. ебать костыль
66 3247000
>>246998

>той же кложуры


плагина, офк(calva)
67 3247394
>>246998

>нечитаемая хуета


Да я уже понял, что с чтением у тебя сложности, даже шапку никак осилить не можешь.
Там есть ссылка на документацию в современной верстке, а там, в свою очередь, ссылка на ещё одну - пользуйся. Ну или не пользуйся.

>плагины есть, и вроде даже не один


>но не сравнится с функционалом той же кложуры


Какой ты пробовал и чем не сравнится?

>тот же квиклисп как я понял по сути каждый раз загружается в репл при инициализации новой сессии, т.е. ебать костыль


Вот это да! Ух, а какие непотребства динамический компоновщик выделывает - тебе лучше вообще не знать
68 3247418
>>247394
ну я так и думал, что ты охранитель, вот поэтому лисп и находится на уровне засохшего кала, потому что нет человеческих условий даже просто начать что-то делать
69 3249132
Во многих проектах видел упоминание ocicl и clpm в качестве альтернативы quicklisp'у. Что за покемоны и кто из них теперь главный? Квиклисп уже можно закапывать? Помогите разобраться
70 3250280
>>246585
никогда не понимал подобные визги
какой тулчейн тебе нужен? сырцы это просто текст, лисп машина это просто лиспмашина
хуй знает что тебе нужно чтобы писать тексты и пихать их в лиспмашину
ну вот что? смузи?

алсо по сабжу треда
вы ваще компилите свои коекаки в бинари? или в объектники? или похуй?
71 3250367
>>250280

>вы ваще компилите свои коекаки в бинари? или в объектники? или похуй?


Если просто скрипт, то обхожусь росвеллом. Если что-то крупнее - asdf program-op
https://lispcookbook.github.io/cl-cookbook/scripting.html#with-asdf
72 3250383
>>250280

>хуй знает что тебе нужно чтобы писать тексты и пихать их в лиспмашину


>ну вот что? смузи?


С Л А Й М
Л
А
Й
М
73 3250388
>>250383
ну и поставь себе слайм, или еще какой плагин хуягин их сейчас силлиарды
вот блять ноют ебаные нытики аррря как писать букафки я нимагу печатать у миня адин палиц а не восимь рук пук хрюк аря
хартьфу блять
74 3250602
>>250367
почитал сей материал, благодарочка
лень искать в кукбуке поэтому спрошу: можно ли скрестить объектник лиспа с объектниками например сишки и зашить в бинарь? вроде бы есть трансляторы лисп ту си, но этот путь мне не очень нравится

ну допустим на лиспе фибку хуйнуть (сам прото и тело функции), а на сихе мэйн и вызов с параметрами пользователя

такой вот простецкий пример чтобы вычислить фибку до миллионного числа допустим, но на традиционных декларативно императивных языках, чтобы не сильно бошку ломать об лисп
75 3250758
>>250602

>можно ли скрестить объектник лиспа с объектниками например сишки и зашить в бинарь?


ecl именно для этого и нужен, правда, код он генерирует менее быстрый, чем sbcl.
Впрочем, sbcl тоже научился делать библиотеки:
https://github.com/40ants/sbcl-shared-library-examples/tree/master
https://github.com/quil-lang/sbcl-librarian
76 3250768
>>250758
я же не про либы спрашивал, а про объектник
с фаслом чо можно наколдовать? есть в нем таблица символов?
77 3250773
>>250768

>с фаслом чо можно наколдовать?


Ничего. Только загрузить в образ. К тому же, формат фаслов не документирован и может меняться от версии к версии.
78 3251341
>>246301
Прямо сейчас, только на хехе: по эрлангу от 7 компаний, по эликсиру от 10. А по лиспу сейчас их сколько, господин обосрамс?
79 3251342
Общелисп с батарейками: https://ciel-lang.org

>- Is CIEL yet another language re-design?


>- Absolutely not. CIEL is plain Common Lisp. We don't redefine the semantics of the language. CIEL is a collection of useful libraries, shipped as one Quicklisp meta-library, a core image and an executable.

80 3251599
>>142890 (OP)

> гомоиконность


Ха-ха, гомики вы все!
image855 Кб, 2516x1190
81 3252140
итак
встала хуем задача написать очередную тулзу под лисп
а в частности лиспкомпилер
да да я вкурсе что sbcl итак компилит сырцы хуе мое речь как раз пойдет об этом
неудобство заключается в том что строчку (compile-file "filename") нужно держать в сырце, а я хочу оставить сырцы без этих лишних телодвижений

итак что мы имеем:
сырец <filename.lisp>
sbcl
zsh (bash cl)

что я хочу:
$ ls
filename.lisp

$ cl filename.lisp
$ ls
filename.lisp filename.fasl

$ cl -b filename.lisp
$ ls
filename.lisp filename.fasl filename.exe*

я вот думаю, что нужно снять копию с сырца, дописать в копию враппер defun main(), дописать в копию последней строкой функцию компила (соответственно если флаг был то компил в бинарь, если флага не было - в fasl) и затем в хидден режиме этот модифицированный сырец скормить серверу, чтобы он ничо не пукал в консоль, но высрал файлик, затем удалить промежуточный мусор

звучит как задача для мейка, но я не хочу плодить мейкфайлы для всяких хеловордов на лиспе, а потому мне нужен либо баш, либо bin/cl

затем надо просто прописать очередной алиас в zshrc:
alias cl='compile-lisp.sh'
сунуть эсаш в юзербин и сделать его экзекьютабл

так как тут тред лиспа - помогите с bin/cl скриптом для этой хуйни? я только начал изучать лисп (да и в баше не шарю), но тулзу для удобства пользования очинь хочица
image855 Кб, 2516x1190
81 3252140
итак
встала хуем задача написать очередную тулзу под лисп
а в частности лиспкомпилер
да да я вкурсе что sbcl итак компилит сырцы хуе мое речь как раз пойдет об этом
неудобство заключается в том что строчку (compile-file "filename") нужно держать в сырце, а я хочу оставить сырцы без этих лишних телодвижений

итак что мы имеем:
сырец <filename.lisp>
sbcl
zsh (bash cl)

что я хочу:
$ ls
filename.lisp

$ cl filename.lisp
$ ls
filename.lisp filename.fasl

$ cl -b filename.lisp
$ ls
filename.lisp filename.fasl filename.exe*

я вот думаю, что нужно снять копию с сырца, дописать в копию враппер defun main(), дописать в копию последней строкой функцию компила (соответственно если флаг был то компил в бинарь, если флага не было - в fasl) и затем в хидден режиме этот модифицированный сырец скормить серверу, чтобы он ничо не пукал в консоль, но высрал файлик, затем удалить промежуточный мусор

звучит как задача для мейка, но я не хочу плодить мейкфайлы для всяких хеловордов на лиспе, а потому мне нужен либо баш, либо bin/cl

затем надо просто прописать очередной алиас в zshrc:
alias cl='compile-lisp.sh'
сунуть эсаш в юзербин и сделать его экзекьютабл

так как тут тред лиспа - помогите с bin/cl скриптом для этой хуйни? я только начал изучать лисп (да и в баше не шарю), но тулзу для удобства пользования очинь хочица
82 3252166
>>252140
Ты roswell переизобретаешь что ли?
image5 Кб, 228x250
83 3252178
>>252166

>roswell


неа, не похоже, это какой то пакетник, а я переизобретаю хук
может на днях сам осилю, сейчас не особо есть время ковыряться
84 3252197
>>252178
Не только, это ещё и альтернатива почившему cl-launch -- пускалки скриптов. Твой пример как раз оттуда.
Показываю, как пользоваться:
1. ros init yopta # генерируешь скелет скрипта
Successfully generated: yopta.ros
2. Открываешь своим любимым редакторомемаксом и пишешь свой скрипт. Вот тебе пример с зависимостями: https://dpaste.org/bNDSv
3. Запускаешь ./yopta.ros
Первый запуск потребует какое-то время на компиляцию всех зависимостей
4. При необходимости создаешь бинарник: ros build ./yopta.ros
85 3252198
>>252197
Чутка обкакунькался в примере
https://dpaste.org/03R3q
86 3252240
>>252197
так мне не нужен генератор скрипта
мне нужен скрипт
так что снова нет, я не переизобретаю розвел, я переизобретаю хук
87 3252307
>>251341
Только тебя на эти 7 ваканский один хуй не возьмут потому что ты кроме смузиегвого джаваскриптопитона с 10000 ваканский ничего не осилил, ну и нахуй ты тут перед нами выебываешься?
88 3252411
>>252240
Ты какую проблему пытаешься решить? Из твоей шизофазии сложно что-то понять, можно только догадываться. Ясно только одно: ты явно делаешь что-то не так.
Тебе нужен инструмент для превращения скриптов в исполняемые бинарники или что?
89 3252603
>>252411
консоль первый раз увидел?
90 3252639
>>252603
Понятно. Ладно, набивай свои шишки сам.
91 3253119
>>252307
Опять обосрался... Прямо таки обосрамс-комбо. Ну соберись, что же ты...
Я последние 4 года только и работаю эликсир/эрланг разработчиком.
92 3253847
>>253119
Что разрабатываете, сколько плотют?
93 3253859
>>253847
Система мониторинга и управления, SCADA выходит.
Что-то я не вижу 2х зарплат как ОП пишет. Может немножко выше среднего, но гораздо больше вкусных вакансий по Python/Go/Rust. Наверно надо ждать западный хаир, там будет вкуснее надеюсь. Щас 250к, 13 лет.
94 3253860
>>253859
Ой, это в эликсир треде ОП писал про 2х, не тутошний.
95 3259392
Какой лисп имеет самую лаконичную спецификацю?
96 3259393
>>259392
picolisp
97 3260637
>>259392
Схема конечно
У пиколиспа вообще не спека >>259393
98 3260728
>>260637
Язык одной реализации, стандарта у него, конечно же, нет.
Но тем не менее схемы он лаконичнее.
99 3260868
>>260637
Там их целых 7 редакций
100 3261170
>>260868
R5rs самая маленькая, r7rs современнее. А так зависит от того, для чего спеку читаешь - мне как энтузиасту зашла r7rs своей лаконичностью и выверенностью. Только дин диспатча не хватало, но он прикручивается как и половина фич через макросы+cps
101 3266091
Вкачусь в тред с тупым вопросом: почему в CL принято устанавливать модули quicklisp'ом? В линуксах, например, не очень приветствуется метод установки тех же питонячьих модулей pip'ом и они разбиваются на пакеты конкретного дистрибутива. В CL же подобной тенденции нет. Во всех дистрибутивах (кроме мб guix'а) модули ставятся quicklisp'ом. Есть ли в этом сакральный смысл?

Вроде бы у Racket'а комунити меньше, но при этом они имеют свой оверлей в генте:

https://gitlab.com/gentoo-racket/gentoo-racket-overlay
sage 102 3266095
>>266091

>почему в CL принято устанавливать модули quicklisp'ом?


Потому что удобно.

>Есть ли в этом сакральный смысл?


Встречный вопрос: если ли сакральный смысл в дополнительном опакечивании для целого зоопарка дистрибутивов?
103 3266107
>>266095

> если ли сакральный смысл в дополнительном опакечивании для целого зоопарка дистрибутивов?



У тех же дистрибутивов линукса, например, не принято использовать сторонние пакетные менеджеры для system-wide вещей, т.к. это усложняет отслеживание версий модулей/пакетов и может превращать систему в свалку без централизации управления системными либами. У мейнстримовых дистрибутивов (арч, генту, дебиан) подобное прослеживается с тем же перлом, руби и питоном. Но вообще не прослеживается с общелиспом.

Да и опакечивание делается пользователями конкретного дистрибутива, не для зоопарка в целом. Но то, что вообще никто не захотел заморачиваться с этим языком — немного интересно стало.
sage 104 3266108
>>266107

>сторонние пакетные менеджеры для system-wide вещей


Пакеты для cl не являются общесистемными и нужны только во время разработки, ибо софт распространяется в виде цельных образов.
sage 105 3266117
>>266108

>и нужны только во время разработки


Ну и сборки, да.
image805 Кб, 2880x1800
106 3267432
а всмысле? в лупе только when работает? а как же ифы?
107 3267538
>>267432
format t, а не format nil. С nil он просто возвращает отформатированную строку, а с t эквивалентно format standard-output
equal неуместен, для сравнения чисел есть =
setq использовать не надо, это рудимент, вместо используй setf, а именно в этом случае - incf
Ну и вообще, ты зачем за макрос руками работаешь? У loop же есть конструкция :for :to. А так две ошибки допустил, инкремент и проверка условия не в тех местах.
image770 Кб, 2880x1800
108 3267790
>>267538
чота я пока не могу в функциональный стиль
лямбды эти ваще не даются
ну в процедурном канешн ничо сложного (кроме того что тут чота все макросами обмазано)
109 3267792
>>267790
а блин, ветвление неправильно сделал, ну да ладно, сойдет для первого раза
изображение.png107 Кб, 1272x846
110 3267871
>>267790
Ветвления какие-то.... тьфу. Слишком высокоуровнево.
Раз уж взялся за tagbody/go, то не стоит останавливаться на полпути.
111 3267937
>>235164
нет, ломает.
112 3268170
Хочу сделать макрозамену foo2, которая использует foo1.

>(defmacro foo1 (msg) (format t msg) )


>(defmacro foo2 (msg) (foo1 msg) )


>(foo1 "test1")


>(foo2 "test2")


Ошибка какая-то. foo1 отдельно вроде выполняет, а через foo2 не хочет...
Хочу сделать как в си -

>#define foo1(msg) printf(msg)


>#define foo2(msg) foo1(msg)


- чтобы было понятно.

Потом ещё такой вопрос - как убрать кучу текста от sbcl при ошибках? Под сотню строчек вылетает на 1 ошибку. Нафига столько? Какие там флаги проставить?

И где вообще полноценное описание всяких закорючек в духе -

>` ' ~ @ # : & %


- и т. д.? Поисковик такое не берёт. А с этого нигде не начинают объяснение языка, хотя это основы несомненные, причём совершенно неочевидные для интуитивного понимания.
113 3268250
>>268170

>#


эта хуйня вроде сокращение от lamda

>'


а эта хуйня сокращение от quote

>~


эту хуйню я встречал в принтах, начало управляющей севенции, например ~% это перевод строки как \n в си, ~a это %d в си (ну не только децималы а вообще вроде любую хуйню может выводить, мультифункциональная вставка параметра типа того)

только вкатываюсь
image1,9 Мб, 2880x1800
114 3268328
да как эту вашу дямбду написать
я не могу понять

да я могу написать просто рекурсию, но тогда есть вероятность переполнения, мне нужно лямбда решение
изображение.png54 Кб, 774x301
115 3268445
>>268170

>Хочу сделать макрозамену foo2, которая использует foo1.


А читать ты что-нибудь не пробовал? Тот же pcl или хотя бы кукбук.

>И где вообще полноценное описание всяких закорючек в духе


Внезапно, в спецификации https://novaspec.org/cl/2_4_Standard_Macro_Characters
>>268250

>эта хуйня вроде сокращение от lamda


#' - это не лямбда, а макрос чтения для function https://novaspec.org/cl/f_function
>>268328
Ты эту лямбду просто возвращаешь. А вызывать-то её кто будет?

>но тогда есть вероятность переполнения


Хвостовую рекурсию оптимизируют почти все реализации cl, хотя по стандарту не обязаны.
116 3268452
>>268170

>Под сотню строчек вылетает на 1 ошибку.


Игнорируешь слайм - ССЗБ. Даже у дедов в 80х был аналогичный инструментарий.
117 3268453
>>268445

>Ты эту лямбду просто возвращаешь. А вызывать-то её кто будет?


милчеловек, напиши как надо? я когда то нагугливал лямбда факториалы всякие а сейчас не могу найти, чтобы на примере применить

>Хвостовую рекурсию оптимизируют почти все реализации cl, хотя по стандарту не обязаны.


на компилер надейся а сам не плошай
118 3268469
надо сделать apply (lambda штоли?
119 3268470
>>268453

>милчеловек, напиши как надо?


Как ты пытаешься сделать, так не надо. Это неидиоматичный код с неоправданным оверхедом и просто мозгоёбка.
https://github.com/ruricolist/serapeum/blob/master/REFERENCE.md#iter
Используй nlet из serapeum, обычный цикл или явную рекурсию, ибо переполнение стека на какой-нибудь маргинальщине типа ABCL - не худшее, что там может случиться.
120 3268508
>>268470
напиши лямбду я имел ввиду
121 3268550
>>268508
Ты ж сам скрин с примерами вкинул, где всё есть.
Если не понимаешь, как их использовать и вообще для чего они нужны, то тебе следует почитать что-нибудь более основательное, а не просто примеры кода.
122 3268566
>>268508
https://ideone.com/g0fhFS
Вот тот костыль, который ты пытался соорудить.
Это неидиоматичный код для cl.
123 3268576
>>268550
пик достаточно основательный? может дело в том что лисп не бейсик какой нибудь, не думал в эту сторону?
124 3268577
>>268566
я не хотел разбивать на две функции
изображение.png325 Кб, 1200x792
125 3268597
>>268577
Не разбивай.
image1,2 Мб, 2008x1404
126 3268687
>>268597
стек оверфлоу канешна жи при больших значениях
лан пойду лямбды ковырять
127 3268710
>>268687
Почитай, что такое хвостовая рекурсия
128 3268713
>>268710
да блять я не настолько вкатун
просто концепция лиспа ебет мне мозг
сидишь блять думаешь как в одно выражение впихнуть два выражения
129 3268720
>>268452
с 80ых могли бы и флаг сделать

>sbcl --script program.lisp


Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001878103}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK INVOKE-DEBUGGER-HOOK #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}>)
2: (INVOKE-DEBUGGER #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}>)
3: (ERROR SB-KERNEL::ARG-COUNT-ERROR :KIND DEFMACRO :NAME FOO :ARGS NIL :LAMBDA-LIST (PARAMETER*) :MINIMUM 1 :MAXIMUM 1)
4: (SB-C::CHECK-DS-LIST #<unavailable argument> #<unavailable argument> #<unavailable argument> #<unavailable argument>)
5: ((MACRO-FUNCTION FOO) (FOO) #<unused argument>)
6: ((FLET SB-IMPL::PERFORM-EXPANSION :IN MACROEXPAND-1) #<FUNCTION (MACRO-FUNCTION FOO) {52A4AB2B}> NIL)
7: (MACROEXPAND (FOO) #<NULL-LEXENV>)
8: (SB-INT:SIMPLE-EVAL-IN-LEXENV (FOO) #<NULL-LEXENV>)
9: (EVAL-TLF (FOO) 1 NIL)
10: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (FOO) 1)
11: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (FOO) :CURRENT-INDEX 1)
12: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {10009EA8AB}> #<SB-C::SOURCE-INFO {10009EA873}> SB-C::INPUT-ERROR-IN-LOAD)
13: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
14: ((FLET SB-FASL::THUNK :IN LOAD))
15: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {7FDF9E31F74B}> #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}>)
16: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> NIL)
17: (LOAD #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
18: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}>)
19: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
20: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-IMPL::PROCESS-SCRIPT))
21: (SB-IMPL::PROCESS-SCRIPT "program.lisp")
22: (SB-IMPL::TOPLEVEL-INIT)
23: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
24: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-IMPL::START-LISP))
25: (SB-IMPL::START-LISP)
129 3268720
>>268452
с 80ых могли бы и флаг сделать

>sbcl --script program.lisp


Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001878103}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK INVOKE-DEBUGGER-HOOK #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}>)
2: (INVOKE-DEBUGGER #<SB-KERNEL::ARG-COUNT-ERROR {10018D2F23}>)
3: (ERROR SB-KERNEL::ARG-COUNT-ERROR :KIND DEFMACRO :NAME FOO :ARGS NIL :LAMBDA-LIST (PARAMETER*) :MINIMUM 1 :MAXIMUM 1)
4: (SB-C::CHECK-DS-LIST #<unavailable argument> #<unavailable argument> #<unavailable argument> #<unavailable argument>)
5: ((MACRO-FUNCTION FOO) (FOO) #<unused argument>)
6: ((FLET SB-IMPL::PERFORM-EXPANSION :IN MACROEXPAND-1) #<FUNCTION (MACRO-FUNCTION FOO) {52A4AB2B}> NIL)
7: (MACROEXPAND (FOO) #<NULL-LEXENV>)
8: (SB-INT:SIMPLE-EVAL-IN-LEXENV (FOO) #<NULL-LEXENV>)
9: (EVAL-TLF (FOO) 1 NIL)
10: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (FOO) 1)
11: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (FOO) :CURRENT-INDEX 1)
12: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {10009EA8AB}> #<SB-C::SOURCE-INFO {10009EA873}> SB-C::INPUT-ERROR-IN-LOAD)
13: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
14: ((FLET SB-FASL::THUNK :IN LOAD))
15: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {7FDF9E31F74B}> #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}>)
16: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> NIL)
17: (LOAD #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
18: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file program.lisp" {10009E8C53}>)
19: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
20: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-IMPL::PROCESS-SCRIPT))
21: (SB-IMPL::PROCESS-SCRIPT "program.lisp")
22: (SB-IMPL::TOPLEVEL-INIT)
23: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
24: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-IMPL::START-LISP))
25: (SB-IMPL::START-LISP)
130 3268729
>>268720
Удобно без слайма, я смотрю.
131 3268730
>>268720

>>sbcl --script program.lisp


у меня глючит этот флаг
бывает грузит, бывает не грузит
так что я захожу с шоколадного

>sbcl --noinform < progname.lisp


>in .zshrc


>alias lisp='sbcl --noinform <'


мимо
rtb98475yg8.jpg32 Кб, 478x367
132 3268757
>>268730

>sbcl --noinform < progname.lisp


Через конвейер он по-другому работает: дублирует строчки, пишет значения выражений (со звёздочкой); вроде интерпретатора что-ли. В итоге вывод самой программы увеличивается в 4 раза и выглядит размашисто. Может и это всё тоже можно убрать флагами? noinform только приветствие убирает.
ПС: noprint, нашёл. Теперь удобоваримо. ) Спасибо.

>>268729

>Удобно


Гораздо удобнее, чем твои посты придумывать.
image117 Кб, 1430x166
133 3268784
>>268757

> можно убрать флагами?


вот такие еще варики
попробуй, мне звездочки в выхлопе репла не особо мешают пока вкатываюсь
134 3268787
>>268784
Смари ещё варик:
mkfifo /tmp/pipe; while true; do cat /tmp/pipe; done | sbcl
А потом в емаксе вешаешь на хоткей write-region в /tmp/pipe
135 3268789
>>268784
еще можно бинарь собрать и не париться
правда бинари на лиспе большие по размерам а по скорости я их не тестил, у меня нет профайлера
вот бы кто сравнил с сишкой
136 3268797
>>268787

>в емаксе


почему в этой хуйне в цветовых схемах не работает face number?
он типа должен декорировать циферки как в виме, но нихуя
мб ты знаешь ответ
изображение.png248 Кб, 638x692
137 3268799
>>268797
в душе не ебу
138 3272109
>>267790
для функциональщины лучше схему/ракетку/кложур бери
коммон лисп больше оопшный/процедурный, дрочить лямбды там можно конечно, но не так удобно как в языках выше
139 3272384
>>272109
написано мультипарадигменный значит будем дрочить в разных парадигмах
image159 Кб, 2554x536
140 3272396
я правильно понимаю что (or) это какой то экстендед тернарник?
написано что выражения вычисляются слева направо пока какое то из них не вернет тру
так выходит из простейшего OR можно свич слепить, напихать в него вызовы и пускай себе щелкает слева направо, как если бы это был свич (или в других языках селект кейс) сверху вниз пока не найдется первый тру кейс

я все еще не могу понять нафига в CL напихали так дохуя всяких макросов

вот если есть OR то нахуй тогда нужен COND? начинает вонять избыточностью плюсов...
141 3272485
>>272384
c++ джава и питон тоже мультипарадигмальные но не будешь же ты в них фп дрочить? если хочешь фп то либа схема либа мл языки типа хаскеля и окамла
142 3272487
>>272396

>экстендед тернарник


в некотором смысле да
это вообще-то макрос, ты его можешь сам за минуту написать

>COND


он для другого нужен, это как свич на условиях типа
```
(case t
((= 0 1) 1)
((= 0 2) 2)
((= 0 0) 'ok)
(t 'default))
```
только то что выше для CL некорректно
а cond вместо case t уже все делает нормальным
143 3272613
>>272396

>вот если есть OR то нахуй тогда нужен COND?


А нахуй нужен COND, если есть IF? Всё избыточно, кроме специальных операторов.
144 3272715
>>272613
ифы неудобные кста в кл
всего одно выражение на ветку
145 3272819
>>272715

>всего одно выражение на ветку


Как и во многих других языках тащемта. В том числе в сишке
146 3273095
>>145074
Современное железо сплошь контрол флоу, то есть датафлоу приходится либо эмулировать как в джаве, либо перегонять на в контролфлоу представление. Датафлоу неэффективен, он типобезопасен.
147 3273099
>>142890 (OP)
repl это компилятор?
148 3273443
>>273099
Это (loop (print (eval (read))))
149 3273487
>>273443
Значит интерпретатор ?
150 3273493
>>273487
Нет.

>REPL (от англ. read-eval-print loop — «цикл „чтение — вычисление — вывод“») — форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки.



Неужели сложно было загуглить?
151 3273508
>>273493
Значит транслятор?
1290798005.jpeg25 Кб, 450x600
152 3273509
image320 Кб, 728x530
153 3273536
image82 Кб, 2588x592
154 3273669
ладно шутки в сторону
книжечку нашел по CL надо кому?
155 3273708
>>273669
Ну ты не спрашивай, а вкидывай

Кстати, в шапке ссылка протухла. Вот актуальная
https://github.com/pcl-ru/pcl-ru/releases
156 3273722
>>273708
так это она и есть
какое у нее название, кто автор? pcl.pdf как то фигово звучит
157 3273725
>>273722
Practical Common Lisp
158 3273908
>>273493
И? Он что делает по сути? Транслирует?
159 3274277
>>273722
Practical Common Lisp by Seibel Peter
160 3274964
Почему значение переменной можно звать только без скобок? Это же пиздец как выбешивает, ты только начал понимать закономерность этого ебаного ((())) вот те и на. Как лисп вообще видит что-то не в скобках нахуй?
161 3274969
>>273908
В лиспе ты не сохраняешь программу как таковую - она создаёт мини-копию репла, по сути встроенный компилятор. Считай что каждая отдельная программа компилируется ин риал тайм при работе. Ты на ходу можешь теребить код.
162 3275016
>>274969

>риал тайм при работе. Ты на ходу можешь теребить код.



Это же и есть интерпретатор, не?
163 3275042
>>274964
потому что переменная это связанный с хуйней атом?
а ((())) это выражение?
164 3275048
>>275042
Так а почему функцию нельзя вызвать тем же макаром? Однохуйственно же, значение переменной ты вызываешь в консоль или результат работы функции.
165 3275065
>>275048
почемучка не жирни
166 3275221
на какие задачи лиспоподобные хорошо кладуться? если нужно например вебсокет сервер написать то тут уже без стейта (и сайд эффектов) никак
167 3275250
>>275221
ну ты конечно привел пример
ты бы еще про ардуину вспомнил
кажется лисп это ультрахайлевл бай дизайн, а писать на нем ось лейеред микропиську все равно что байтоебить на жабе
168 3275263
>>273908
Выполняет код. Под капотом может быть как интерпретатор, так и компилятор. В случае sbcl - второе.
>>275221

>то тут уже без стейта (и сайд эффектов) никак


Лисп - мультипарадигменный, ФП даже не является основным из подходов, не говоря уж о чистофункциональном.
>>275250

>ты бы еще про ардуину вспомнил


http://www.ulisp.com/

> а писать на нем ось лейеред микропиську


https://github.com/froggey/Mezzano
169 3275267
>>275263

>ссылочки


по-твоему я сказал что этого нельзя делать? я сказал что лисп инструмент не для этого
или мы должны уподобляться всяким шизам и писать шейдеры на пыхе? нет конечно. считаю твоя аппеляция инвалид
отклонено
170 3275275
>>275267

>по-твоему я сказал что этого нельзя делать?


Нет. По-моему, ты просто имеешь крайне поверхностное представление о сабже.
>>275250

>кажется лисп это ультрахайлевл бай дизайн


Тебе кажется.
В общелиспе есть инструменты и для низкоуровневого программирование, и по "ссылочкам" примеры их применения, а ulisp - как раз "инструмент для этого".
171 3275279
>>275275
ладно я понял
ты просто не знаешь разницы между может и предназначен
172 3275282
>>275279
Хорошо, что у нас есть ты, и нам сейчас расскажешь.
Будет очень интересно послушать.
173 3275286
>>275279
Особенно интересно узнать, почему ulisp, предназначенный для программирования микроконтроллеров, для этого не предназначен?
174 3275292
>>275282
>>275286
лень разжевывать "на пальцах"
головушку включи и поймешь
175 3275296
>>275292
по приколу что ли эту хуергу делали
176 3275299
>>275296
диалекты лиспа - да
сидел такой же шиз безработный и пришла ему мысль слепить себе инструмент для ковыряния микроконтроллеров, ну и слепил
теперь сидит в треде и с пеной у рта доказывает что лисп про микрухи
в то же время дефакто стандарт индустрии - плюсы по понятным причинам

сам лисп для обучения нейронок сделали
177 3275304
>>275292
Ну что же ты :( Такими знаниями обладаешь, а не хочешь делиться.
Мужики с 80х годов в неведении, на лиспах ОСи пишут. За столько лет не нашлось им такого светила, кто указал бы, в чем они не правы.
178 3275308
>>275304

>в чем они не правы


ну и где твои мужики типерь? што с ебалом? узнали? согласны?
вас постигла судьба рубишизов, рыночек распределил всех по нужным этому миру шконкам
179 3275311
>>275299
в 1958 не было хайпа миджоннер чатжпт ты что имеешь ввиду
180 3275313
>>275299

джемини клавдий
181 3275315
>>275311
технологиям не нужен хайп, чтобы существовать

>>275313
интересно вы тут рвонькаете, как то даже мило
182 3275317
>>275315
чатжпт клавдия не было в 1959
183 3275321
>>275317
уровень вашей аргументации поражает
184 3275325
>>275308

>ну и где твои мужики типерь?


Те самые? Уже на пенсии.
А новых практически нет. Symbolics прогорел, неправильно выбрав вектор развития. ИИ-пузырь лопнул. Передовые разработки (в т.ч. концепцию гуи и в частности окон) растащили более предприимчивые бизнесмены. А современные школьники, вроде тебя, только слышали звон, мол, ФП, ИИ и скобки. Поэтому сообщество очень малочисленно, крупных проектов почти нет.
185 3275333
>>275299

>в то же время дефакто стандарт индустрии - плюсы по понятным причинам


Манямрии крестоёба.
мимо эмбедщик
186 3275334
думаю вкатиться в кложурескрипт и реакт какие подводные
187 3275346
>>275325
красиво бахаешь

>>275333
еще один с ошибкой выжившего

>>275334
ради денег? чекай вакухи на галеры - в то и вкатывайся
188 3275351
>>275346
ради фана
на хую вертел вакуленции после того как попал в чс сбера
работаю на start up
189 3275353
>>275351
ради фана я бы в лисп вкатывался
без шуток
190 3275545
Запустил sbcl
Перед тобой repl

(+ 5 5)
10

Что он сделал? Скомпилировал или интерпритировал?
191 3275551
>>275545
http://www.sbcl.org/manual/
можешь не благодарить
192 3275552
>>275545
в репле интерпретирует вычислил выражение и результат высрал в ответ
скомпиль в бинарь и запусти правда он ничо не высрет в консоль, так как в этом коде нет принтов
193 3275559
>>275545
Что произошло в SBCL REPL?

Когда вы ввели команду `(+ 5 5)` в REPL (Read-Eval-Print Loop) среды SBCL (Steel Bank Common Lisp), система выполнила следующие шаги:

1. Чтение (Read): REPL считывает введённое выражение `(+ 5 5)`.
2. Оценка (Eval): Выражение оценивается. В контексте Lisp, это означает, что функция `+` вызывается с аргументами `5` и `5`.
3. Печать (Print): Результат вычисления, который равен `10`, выводится на экран.
4. Цикл (Loop): REPL возвращается в начальное состояние, ожидая следующего ввода.

Компиляция или интерпретация?

SBCL, как и многие другие реализации Lisp, использует компиляцию в машинный код для выполнения выражений. Это означает, что даже в интерактивной среде REPL, выражения компилируются перед выполнением. Таким образом, когда вы ввели `(+ 5 5)`, SBCL скомпилировал это выражение в машинный код, а затем выполнил его, чтобы получить результат `10`.
195 3275882
196 3277148
>>275882
Спасибо, но он на мои тупые вопросы отвечает тупостью.
197 3277153
>>277148
Попробуй гопоту4, она чуть поумнее.
198 3277624
В каком учебнике самые заебатые упражнения. Чтобы нужно было код писать, а не головоломки ебучие. Заранее спс.
изображение.png49 Кб, 547x206
199 3277641
>>277624
В PCL норм упражнения.
200 3281113
так сикундачку...
палучаица я магу сделать демона для серва, который будет чекать дэйт/тайм файлика (ну как мейк по той же логике) МОДУЛЬНЕЙМ.лисп и если он изменился схавоть его через load и крутить обновленную версию, а устаревший луп модуля брейкнуть

ебать

ета чо прод без компила?
201 3282350
Захотел вкатиться в Clojure, но дропнул изучение так как работы ВООБЩЕ НЕТ (1 вакансия на страну)
202 3282378
>>282350
а с колько вакансий тебе нужно, чтобы работать на кложур?
203 3282537
>>282350
Так 1 оффлан, а по удалёнке их дохера же
204 3282566
>>282537
Где дохера-то? Ссылки в студию
205 3282567
>>282566
Пока ты изучишь, они все неактуальными станут.
206 3283606
>>282567
Ну то есть ссылок и самих вакух нет, окей.
207 3283609
>>283606
Просто интересно, а что тебе дала бы информация о работе, которая тебе не светит? Особенно с твоими навыками поиска информации.
208 3285438
Скобкоблядь ИТТ. Че у вас тут происходит последние 5 лет?
209 3285966
>>285438
Вкатыши вкатываются. В общем, всё то же, что и в остальном программаче.
210 3285976
>>285966
Во что вкатываемся? В прошлом веке кложура была популярной. А щас она как будто пропала с радаров? Не то чтобы кложура была настоящим лиспом, конечно.
211 3285999
>>285976

>А щас она как будто пропала с радаров?


Ну ты и соня. Тебя даже вчерашний шторм не разбудил.
212 3286004
>>285999
Я в другую религию ударился на какое-то время, не было времени следить.
Че с ней случилось то? Столько хайпа было.
213 3286012
>>286004

>Я в другую религию ударился на какое-то время


В секту переписывателей подался, да?

>Че с ней случилось то?


Харизматичный лидер ушел, у последователей опал хер, в итоге рассосались по новым игрушкам. Остался только тонский и ещё полтора аутиста.

>Столько хайпа было.


Хайп - штука недолговечная.
214 3286085
>>286012
В какой-то момент, да. Но меня так заебало время компиляции, что я вернулся к истокам.

> Харизматичный лидер ушел


Рич съебался? Вот это новости. Куда, неизвестно?
215 3286231
>>286085

>Рич съебался?


Лет пять уж прошло. Сказал, что наигрался, и ушёл в закат.

>Куда, неизвестно?


Хз, не интересовался.
216 3287999
Чет лишп тред совсем мертвый. Сраться не о чем
217 3288026
>>287999
Языкосрачи уже никому не интересны. Какая разница, насколько крутой язык, если ВАКАНСИЙТОНЕТ
218 3288030
>>288026
Как будто они когда-то были.
Лишп это язык для души.
219 3288036
>>288030
Половина программача - вкатыши, которым инфоцыгане наобещали наносеков, другая - клерки с ипотеками. О какой душе ты говоришь?
220 3288049
>>288036
Ну кто-то же создал лисп тред?
221 3288113
>>288049
Мне кажется, он сюда вообще не заходит или сидит в ро.
2024-10-03-1129531287x177scrot.png43 Кб, 1287x177
222 3288115
>>288113
Ну и ладно.

Теперь это elisp-тред.
223 3288131
>>288115

>seq-some


Что-то он всё никак не доэволюционирует в CL.
224 3288140
>>288131
Он давно уже доэволюционировал, если ты про то что умеет CL, см cl-lib.

seq.el это более новая либа, которая выглядит как стандартный функциональный набор, в каком-нить жс, что как по мне намного удобней, потому CL примитивы застряли в 80ых.
225 3288206
>>288140

>Он давно уже доэволюционировал, если ты про то что умеет CL, см cl-lib.


Сходу бросается в глаза, что пакетов ещё не завезли, иначе не было бы этих вот seq-some, cl-getf.

>seq.el это более новая либа, которая выглядит как стандартный функциональный набор, в каком-нить жс


Я бы сказал, как в каком-нибудь CL, лол. Примерно 3/4 из CL, но имена местами изменены на более общепринятые. Только take, drop и group с хаскеля стащили.
226 3288213
>>288206
Каких пакетов, не понимаю о чем ты.
227 3288216
>>288213
Средство контроля области видимости. Неймспейсы.
228 3288220
>>288216
А, ты про это. Ну да, флейт неймспейс. На самом деле работает збс.
229 3288226
>>288140

>seq-reduce (function sequence initial-value)


>reduce function sequence &key key from-end start end initial-value


>seq-position (sequence elt &optional testfn)


>position item sequence &key from-end test test-not start end key


А, так они опциональные аргументы выкинули. Фууу, за это дизлойс.

>>288220
Да кто ж сомневается, что и так работать будет? Но неудобно же.
230 3288233
>>288226
Ну cl-lib никуда не делать. Хочешь его, юзаешь его же.

> Но неудобно же.


Да хз. Греп лучше любых сраных lsp как по мне.
Ну было бы у тебя `seq::some` тебе было бы сильно лучше?
231 3288241
>>288233

>Ну было бы у тебя `seq::some` тебе было бы сильно лучше?


Нет, было бы
(defpackage pkg (:use #:el #:seq))
(some ...)
232 3288303
>>288241
Вот у меня есть проект. Как мне найти все использования конкретного `some` в нем? Если мне не изменяет память, тулинг вокрул CL в такое просто не умеет.
233 3288305
>>288303
{slime,sly}-who-calls
234 3288316
>>288305
Ну ты сам то это говно попробуй. Оно плюс минус неюзабельное.
gaps-minor-mode.png69 Кб, 815x320
235 3288322
Как же похорошел stumpwm при Собянине.
Наконец переделали на всё на методы и прикрутили динамические примеси для расширяемости.
Больше никакого monkey patching'а как в былые https://github.com/stumpwm/stumpwm-contrib/blob/master/util/swm-gaps/swm-gaps.lisp
236 3288324
>>288322
Как он щас, кстати? Я лет семь назад с него слез, потому что он заебал глючить на мелочах типа иконки телеги в трее лагучей.
237 3288325
>>288316
Так я и пользуюсь, мне удобно.

>говно


>неюзабельное


Что там у тебя случилось?
238 3288330
>>288324

>Как он щас, кстати?


Чуть более стабилен, но всё ещё нужно уметь приготовить правильно. В контрибах вон >>288322 сам видишь, что творится
239 3288332
>>288325
Если я правильно помню, оно худо бедно работало только для публичных глобальных функций. А типа, кто юзает вот эту приватную функцию поправь терминологию сам хуй.
240 3288336
>>288330
Я понял что я особо не трогаю конфиг своего вм вообще после изначальной настройки, поэтому динамичности как у стампа мне особо не надо. dwm за глаза хватает. Впрочем, его еще и легче править на лету, чем stumpwm.
241 3288341
>>288332
Да не, слайму похуй экспортируется символ или нет.
Я вот сейчас буквально stumpwm ковырял, постоянно пользовался sly-who-{calls,references} - всё отлично работало.
242 3288344
>>288341
Ну лан, может ДОПИЛИЛИ.
Но все равно, я много лет убил на CL, и ну его нахуй.
243 3288346
>>288336

>Впрочем, его еще и легче править на лету, чем stumpwm.


Ну не, в плане модификации и, тем более, отладки на лету stumpwm всем даёт пососать.
244 3288351
>>288346
Хер знает, не могу сказать что у меня хорошие от этого процесса воспоминания.
Ну может когда у меня будет очередной приступ тинкеркрастинации, гляну еще раз.
245 3288538
CL кун, сможешь показать как сделать простенький скрипт?
246 3288585
>>288538
Тебя какой именно аспект скриптования интересует?

https://lispcookbook.github.io/cl-cookbook/scripting.html
В кукбуке этот вопрос вроде достаточно полно освещён, не показано только примеров с roswell'ом в качестве пускалки скриптов.
247 3288588
>>288585
Есть супер простая задача.
Есть директория, в ней лежат csv файлики. Каждый надо распарсить, удалить дубликаты из колонок по определенным правилам, сгенерить sql и вставить его в базу.
248 3288595
>>288588
Да, несложная. Какие-то вопросы?
249 3288597
>>288595
Покажешь как сделать?
250 3288598
>>288597
Нет, сам делай свою лабу.
251 3288617
>>288598
Эт не лаба. И я уже все сделал. Мне просто было любопытно как бы это выглядело на общелиспе. Сколько боли бы это вызвало.
252 3288856
>>288617

>Сколько боли бы это вызвало.


Зависит от СУБД и объемов. Но если у тебя не десятки гигабайт и bulk insert не нужен, то, скорее всего, ноль боли.

>Мне просто было любопытно как бы это выглядело на общелиспе.


Любопытно — сделай. Разомнешь серое вещество.
253 3288948
>>288856
Ну ты и бака!
254 3289781
>>288036
Я для себя чисто для души.
image.png488 Кб, 894x569
255 3289889
sly или slime?
256 3289967
>>289889
Да не велика разница.
257 3290885
Заклинатели метаобъектного протокола CLOS у нас тут водятся?
258 3290889
>>290885
Нет, но ты все равно спрашивай.
259 3291011
>>290889
Да уже разобрался. Описывал метакласс для прозрачного доступа к атрибутам в sysfs и нужны были прокси-слоты.
Короче, определил метакласс, классы direct-слотов, effective-слотов и метод slot-value-using-class и его setf-версию, которые читают и пишут из/в sysfs. Работает, но мне не нравится, что место под эти слоты выделяется в объектах. Нет, мне не жалко этих скольких-то лишних байт на объект, но перфекционизм не даёт покоя.
260 3291104
>>291011
show the usage code
262 3291817
Звали в сбер. Они купили продукт по страхованию написанный на листе. Готовы обучать, тк я на листе не писал никогда. Не взяли, потому что не решил в тестовом задания со *
В первой надо было писать процедуру на sql
Во второй выводить самые толстые файлики через консольный git
263 3291862
>>291817

>написанный на листе


А4?
264 3292267
>>291862
Листотред А4 №15
265 3293427
>>291817
Что за продукт, на каком листе?.. Расписал бы хоть.
С задач со звёздочкой кринжанул
266 3293987
>>291817
>>291862
>>292267
давеча на листе писал джиэсик для себя
имаджинировал ебало техлига кста, который эту хуйню придумал
172888826259320000.mp4795 Кб, mp4,
752x652, 0:08
267 3297560
Как писать программы?
268 3297898
>>297560
(print (eval (read))
269 3298061
>>297898
А где описание на русском что такое eval и куда и когда его надо вставлять?
sage 270 3298068
>>298061
МОЛОДОЙ ЧЕЛОВЕК, ВЫ КАК К НАМ ВООБЩЕ ПОПАЛИ?
271 3298099
>>298068
Девачка с ютуба сказала что лист пиздатый
272 3298103
>>298099
Ну вот пусть она и объясняет, куда там евалы засовывать надо.
sage 273 3308721
Более подходящего треда нет, спрошу тут.
Кто-нибудь мне может объяснить, какого хуя в APL выражение ≤\1 0 0 1 0 1 0 возвращает 1 0 1 1 1 1 1, а не 1 0 1 1 0 1 0? Я джва годадня убил на отладку своего говнокода из-за этой хуйни.
Предполагаю, что ответ "просто потому что". Но как тогда добиться ожидаемого поведения оператора scan?
274 3308722
Сега приклеилась
275 3309813
>>308721

>APL


о_О
276 3309815
>>291817
Ценный коммент, спасибо за правду. Посмешил.
277 3309817
>>291817
предположу что все же система была написана на сlojure, а не на общелиспе или схемке
278 3309929
>>309817
У них вроде и брощелисп, и кожура используются.
279 3312006
>>298061
То есть, куда вставить read и print ты разобрался, а для eval дырки не хватило?
280 3312018
>>288588
Но зачем делать такое на лиспе?
Для этого есть гораздо более подходящие инструменты.
281 3312049
>>312018
Для чего лисп тогда подходит?
282 3312057
>>312049
Для мастурбации решения задач из SICP.
283 3312059
>>312057
Я кстати решил его таки дочитать. В свое время половину прочитал, и как-то забросил.
Message Passing style оч симпотично выглядит.
284 3313915
Читаю sicp, дошел до упражнений, нужно писать код на lisp scheme, что нужно устанавливать?
Ну или порекомендуйте онлайн интерпретаторы.
285 3313929
>>313915
drracket
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее