Это копия, сохраненная 18 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Scheme,
Common Lisp,
Racket,
LFE,
Clojure,
и т.д.
Трем за гомоиконность, мультипарадигменность и метапрограммирование. Токсим на кложу и выступаем адвокатами кложи. Уважаем дедов и помогаем ньюфагам.
Лал, дохлотред дохлых парсеров АСТ-деревьев.
Читнул недавно сикпу, оно конечно забавно первые пятьсот страниц, и поясняет за фунциональщину куда лучше, чем уебанская хаскель-книжка со слоном из прилипшего треда.
Но, схема - учебное пособие, а остальные недоязыки из шапки - говно без задач с несовместимым синтаксисом.
>говно без задач с несовместимым синтаксисом
упитанно
Лисп подходит к любой задаче, ты можешь вылепить из лиспа любой инструмент. Хочешь мыслить в термах объектов - пожалуйста. Хочешь мыслить в термах преобразований и структур данных - на здоровье.
Если не удалось написать код под конкретную задачу, то скорее всего ты не правильно понял задачу.
>оно конечно забавно первые пятьсот страниц,
Мне дальше сотой плохо становиться, не могу дочитать. Щто делать?
Что может быть удобнее того инструмента, который ты сделал сам под размер и форму своего мозга?
>остальные недоязыки из шапки - говно без задач
Вы посмотрите на него. Он думает, что он великий погромист. Задачи не от языков происходят, а из головного мозга. Лиспы могут решать любые задачи. Нужно же хоть немножко думать, прежде чем изрыгать такие высеры. Хотел понтануться, но сел в лужу.
Ах да, Scheme один из лучших Лиспов, один из старейших Лиспов, один из мощнейших языков существовавших когда-либо.
>>057484
Не стоит надрываться, все равно не оценят. Пусть барахтаются в своем болоте.
>>057394
Удобнее чем? В каких задачах удобнее? Для кого удобнее? Статья Пола Грэма "Лисп, побеждая посредственность", ясно показывает что Лиспы удобнее других языков. Благодаря использованию Лиспа, Грэм сумел побить всех конкурентов, и в итоге продал компанию за 10 млн. долларов, а это были 90-е годы.
Может тебе еще содержимое кошелька вывернуть?! Какие задачи не может решать Лисп, ну-ка расскажи?
Если ты сравниваешь успешность языка в способности побеждать конкурентов, то теперь лисп сам побежден, работы на нем нет, совсем, для 90-х он может и был каким то откровением, но сейчас он безнадежно устарел
>работы на нем нет
Не работы на нем нет, а люди не знают как пользоваться им. Лисп - это инструмент для создания инструментов, повышающих твою эффективность, как программиста. Не зависимо от работы ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процесса. Итог - минимум глупейших ошибок и багов в продакшене.
>ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процесса
Много написал уже?
Самый православный наверное схемка. А я вот быдлирую на кложе, это такой модный лисп
Если честно то сказал от пизды. Просто схемка очень минималистична, я это ценю. А на общелиспе я не писал, но слышал что он не очень консистентен. Лучше у шарящих бывалых челов узнать. Я кложескрипт-модник
Конечно не покажу. Какой смысл, даже если тебе покажешь изящнейший edsl из какой-нибудь лисповой библиотеки то ты один хрен доебешься до скобочек и изящности там не увидишь. :)
Если ты не понимаешь зачем тебе надо лисп, то значит он тебе не надо.
Погугли термы из шапки и реши для себя, поможет ли тебе эти концепции писать лучший код? Если нет то и не еби себе головы.
Лисп это тоже не серебрянная пуля, хотя имхо очень похожа
И это довольно ошибочное мнение что типа ничего на лиспе не пишется и никто на нем не пишет.
Кому надо, тот пишет
>Читнул недавно сикпу, оно конечно забавно первые пятьсот страниц, и поясняет за фунциональщину куда лучше
Ti sovsem dayn? Tam pochti nichego po FP net krome HOF i TCO, no eto sovsem azi dlya teh kto tolko vkativaetsya v programmirovanie, kak i vsya kniga sobstvenno.
Это моя коммерческая тайна. Может когда-нибудь открою исходники, когда актуальность потеряется. Но все равно это будет всем похуй. Вам жабу, да пхп подавай.
Я на дядю работаю. Просто дядя и коллеги-макаки не знают о том, почему у меня код без багов.
ну я например пишу интерфейсы на кложескрипте.
https://stackoverflow.com/questions/779639/what-are-cad-apps-written-in-and-how-are-they-organized
> As my company is a registered developer for AutoCAD, I know for certain that its written in C++.
Автокад лиспом только скриптуется, да и от этого давно и упорно отходят
>Лисп - это инструмент для создания инструментов, повышающих твою эффективность, как программиста. Не зависимо от работы ты можешь потихонечку для себя писать какой-нибудь кодогенератор из лиспа в нужный тебе язык, который будет генерячить код на основе декларативного описания бизнес процесса.
За счет каких фишек лисп позволяет это делать?
Макросы плюс гомоиконность позволяют делать это с минимумом затрат времени. Ничто не мешает это делать и на других языках, только заебешься.
Можешь привести конкретные примеры с кодом? Было бы интересно поглядеть. Прочитал про гомоиконы, неплохо, неплохо.
мимо-джава-выблядок
Practical common lisp почитай. Там полно примеров.
Я знаю хаскел и сознательно сыбал в лисп, на лиспе я приложения делаю, а не пытаюсь в своих вычислениях вычленить монаду или моноид. Я не мыслю так как мыслят хаскелисты и мне тяжело на нем писать, я бы не хотел фултайм писать на хаскеле с его типизацией
>рэм сумел побить всех конкурентов, и в итоге продал компанию за 10 млн. долларов, а это были 90-е годы
Именно что 90-е. Тогда можно было продать за лям даже без языка любой сайт в зоне дот ком. Ты на Грэма посмотри, он же ебучий альфа самец, небось выебал кого надо и втюхал свой стартап.
Алсо почему нет норм книг по лиспу? Я ожидал что раз этот язык близок к математике, по нему полно толковых книг где все изложено предельно точно в стиле учебников по матану. Но ирл какая-то хуета, особенно учебник самого Грэма.
СИКП, ТАПЛ, и т.п.
http://newstar.rinet.ru/~goga/sicp/sicp.pdf
http://newstar.rinet.ru/~goga/tapl/tapl.pdf
Вот то что тебе нужно, а не учебник по языку Лисп.
>>059814
>Я ожидал что раз этот язык близок к математике, по нему полно толковых книг
Есть люди, которые говорят, что в СИКПе много математики (не много), почитай.
Если хочешь подняться выше над этим и понять суть способов вычисления в программах, а их 2: Машина Тьюринга и Лямбда-исчисление, то смотри видео https://www.youtube.com/watch?v=dowYB_dPkmU
Поняв теорию Машины Тьюринга и Лямбда-исчисления, прочитав СИКП и выполнив упражнения из нее, можно серьезно прокачать программирование. Не будет проблем писать на любом языке, не только на Лиспах.
и второй проект - тупо вебчик, микросервис внутри какой-то неведомой большой хрени. апишечка над разными апишечками
>Если хочешь подняться выше над этим и понять суть способов вычисления в программах
Спасибо, очень хочу.
Не ну ТАПЛ конечно авторитетная книга, но я спрашивал больше о содержании вообще. Какая цель у книги, о чём там пишут?
Название как бы намекает о целях. Разбирают формальные системы, лямбда исчисление и т.п. теорию. Я не читал, только просмотрел по диагонали, по математике врдое даже хардкорнее ТАПЛ. Похожа на книжку Харпера.
http://www.twirpx.com/file/1204642/
У него еще бложек есть https://existentialtype.wordpress.com
Пока склоняюсь к Харперу - книга самая новая из всех, плюс второе издание, т.е. проверена временем.
В ТАПЛ сходу не понравилось, что они понятие типа (которое как бы центральное) строго не определяют, а дают интуитивное описание.
Да совсем недавно, просто интересовался
Сейчас, кстати, аж целых две
https://hh.ru/vacancy/22768381
https://hh.ru/vacancy/22696531
Каррирование - это тривиальное преобразование:
(define (f x y) (do-something x y))
(define (g x) (lambda (y) (f x y)))
Какие тут доказательства нужны?
Непересечение параллельных тоже тривиальное.
Интересует статус, это теорема (тогда к чему сводится) или аксиома.
Нет, многоаргументную функцию можно определить как ту, у которой аргумент - декартово произведение двух термов (заодно определив термы для создания и разбора декартова произведения).
В F# + Vs code я тоже писал/запускал на ходу, хотя менее удобно (мб в емаксе удобнее, не пробовал в нём f#), наверное то же есть в хаскелле/окамле. В питоне, скале, js вроде как repl - известная штука, но работают ли с ним профи так же тесно, как в лиспах?
Если хочешь выглядить умно и математично (или ты математик и занимаешься функциональным анализом и ты слышал раньше про теорию категорий). То конечно же хаскел, как >>072348
посоветовал ну или потроллил.
Лисп более практически ориентирован, он динамический и заебов там максимально мало, он супер минималистичен и этим немного отпугивает новичков. Например программа на лиспе это рекурсивный список символов :) Базис на котором строится лисп это только сырое лямбда-исчисление и гомоиконность. Но этого хватает для того чтобы написать программу любой сложности и что на много БОЛЕЕ ВАЖНО, ты можешь управлять этой сложностью.
Советую тебе попробовать и то и другое и выбрать то что тебе больше подойдет. Причем не обязательно оно может подойти сейчас. Я первый раз на лисп и хаскел посмотрел после того как статьи на лурке прочитал еще на первом курсе универа. Я тогда сочно ахуел, но после пары языков и некоторого опыта в продакшене вернулся к этим инструментам.
Да хуй знает зачем они там, я пытался разобраться, но нихуя не понял.
Моноид какой-то в категории эндофункторов. Чета там про пруфы и корректность. В теории полезно, на практике не понял где можно применить. Может хаскелисты лучше пояснят
По теоркату для программистов есть вот эта серия статей:
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
Там всё подробно жуётся с примерами на плюсах (C++14) и хаскеле.
ну не то чтобы прямо "нихуя", все-таки это лисп. Но да, жаба и жабаскрипт накладывают свой отпечаток, так как это все-таки хостед язык и он дизайнился таким.
Меня лично больше всего подогревает recur вместо православной рекурсии с TCO, но с этим можно жить, это задевает только мои эстетические чувства. Еще есть структуры данных отличные от старых добрых списков, но я считаю что это хорошо, эти персистентные структуры данных это имхо одна из самых ахуенных фич которая очень значительно увеличивает производительность, так что я считаю это выгодный размен.
Опиши пожалуйста какие у тебя претензии к кложе чтобы я лучше понимал.
ну как не нужен, нужен конечно. Принципы дизайна объектов вполне себе мапятся на функции и структуры данных. Ведь ты часто ассоциируешь какие-то функции с какими-то определенными типами данных. Хорошо написанные программы в ОО парадигме вполне себе хорошо читаются.
Отстойно когда чел владеет только лишь ООП и сует его везде где надо и где не надо.
Где не надо, там не нужно.
Ну что посоны, лисп?
Мы в эликсир-трежд перекатились.
Не вижу ничего интересного в той беседе. Чувак просто никогда не писал на кложе и не понимает, как она устроена, поэтому выдает перлы вроде "использовать Lumo вместо гугл кложекомпайлер", "кложевский extend реализован через джавовский extend", "jvm предназначена только для джава-кода" или "клжс привязан к кложевским типам, а они в свою очередь - к джавовским". Ну, это все просто хуита, и нормальному человеку достаточно 5 минут и гугла чтобы это осознать.
Если тебе интересна кложа в контексте привязки\не привязки к жвм - я вроде в том же треде выше писал. В данный момент кложескриптовая инфраструктура завязана на lein (зависимости, репозитории-обертки для жс-либ, фигвил, клжсбуилд, вот это все), который для разрешения зависимостей использует мавен. Поэтому если ты хочешь писать на кложескрипте что-то серьезное, то тебе нужна жава на дев-машине. Теоретически, можно написать читый кложевский или жсный тулинг, который будет парсить project.clj и тягать зависимости без мавена, но это, мягко говоря, не самая приоритетная задача.
>Ну, это все просто хуита, и нормальному человеку достаточно 5 минут и гугла чтобы это осознать
https://en.wikipedia.org/wiki/Clojure
>Rich Hickey developed Clojure because he wanted a modern Lisp for functional programming, symbiotic with the established Java platform, and designed for concurrency
>symbiotic with the established Java platform
>Clojure runs on the Java virtual machine and as a result integrates with Java and fully supports calling Java code from Clojure,[45] and Clojure code can be called from Java also
>The primary platform of Clojure is the JVM
symbiotic with the established Java platform
Clojure runs on the Java virtual machine
integrates with Java
calling Java code from Clojure
The primary platform of Clojure is the JVM
>если ты хочешь писать на кложескрипте что-то серьезное, то тебе нужна жава на дев-машине
>НИЕТ КЛОЖА НИКАК НИСВЯЗАННА С JAVA ВЫ ВСЕ ТУПЫЕ ОДИН Я В БЕЛОМ СИЖУ ВЕСЬ СПЕЦИАЛИСТ
Оукей.
Ну вот, хотя бы википедию про кложу открыл, лол, уже какой-никакой прогресс есть. Теперь гугли "clojure extend" и читай. Как сделаешь - возвращайся.
>Ну вот, хотя бы википедию про кложу открыл, лол, уже какой-никакой прогресс есть.
Я мимокрокодил.
А ты ебанутый.
>clojure extend
Никоем образом не изменяет факта глубокой интеграции кложи с джавой.
А так же того факта, что сие есть основное свойство кложи.
>Никоем образом не изменяет факта глубокой интеграции кложи с джавой
А этот факт кто-то оспаривал? И еще меня ебанутым называет, лол.
> сие есть основное свойство кложи.
Только не с джавой, а с хостом. И не основное, а одно из основных. Собственно, в rationale это и написано. Ты что сказать-то хотел?
>Ты что сказать-то хотел?
>А этот факт кто-то оспаривал? И еще меня ебанутым называет, лол.
Ну ты ли говорил что, кложа мол не имеет анальной привязке к дажве?
Коль нет так я ошибся. Добра.
Изначально я оспаривал утверждение того идиота, у которого lumo используется вместо google closure compiler'а, о том, что "кложа неприменима за пределами джава-мира". Ну а дальше идиотия расплескалась и рамки дискуссии несколько размылись.
По поводу степени анальности привязки клжс к жвм пояснял выше в этом треде и в том треде. По поводу clojure-crl, кстати, не пояснял - а надо бы. Но я ее не юзал.
>кстати, не пояснял - а надо бы
Галопередону лучше выпей. Сириусли.
>кложа неприменима за пределами джава-мира
А кложа ли это, если оно за пределами джава мира?
Так то и для джавы можно написать компилятор хоть в бинарник, и заявить что мол джава то и за пределами джава мира применима, только нельзя джава библиотеки подключать, и под каждую ось\архитектуру свой бинарник, и надо сишные либы пользовать, а так то да, за пределами джава мира джава имеет просто невероятное применения.
Ну ептв, глубоко не конструктивно рассматривать подобные вещи вне платформы и окружения.
>Галопередону лучше выпей.
Батенька, опять у вас проекции протекают?
> вне платформы и окружения.
Вы что, сговорились тут все? Жвм, жс и дотнет - это три разных окружения. Кложецрл вообще никакого отношения к джаве не имеет. По поводу статуса анальности привязки дев-енвиронмента кложескрипта к джаве я пояснял выше.
И да, кстати, для кложи есть компиляторы в бинарники, в си, в ерланг вм байт-код, в скиму - да даже компилятор в твою мамашу, подозреваю, найдется. О них, разумеется, никто речи не ведет.
>Батенька, опять у вас проекции протекают?
Причем тут проекции?
У тебя навязчивые идеи.
>Жвм, жс и дотнет - это три разных окружения.
Да.
>Кложецрл вообще никакого отношения к джаве не имеет.
Именно!
>я пояснял выше
Держи нас в курсе.
> "клжс привязан к кложевским типам, а они в свою очередь - к джавовским". Ну, это все просто хуита, и нормальному человеку достаточно 5 минут
Конечно достаточно.
user=> (type 10)
java.lang.Long
user=> (type 10.0)
java.lang.Double
user=> (type Thread)
java.lang.Class
(type clojure.lang.Symbol)
java.lang.Class
Все персистентные структуры в кложуре тоже are implemented in java
А вот в cljs они are clojure types в чём можно посмотреть прямо здесь.
https://github.com/clojure/clojurescript/blob/master/src/main/cljs/cljs/core.cljs
Так что не так то?
>Ну вот ты и разобрался со своим вопросом, молодец.
У меня не было никаких вопросов, у тебя точно с головой все в порядке?
Это не добавляет веса вашим аргументам, а наоборот.
Просто ты мудак.
http://lurkmore.to/Мудак
>главная отличительная черта мудака — это упертость в паре со священной уверенностью в собственной правоте (причем, эту правоту непременно надо навязать всему миру — иначе мир останется несовершенным).
https://github.com/synrc/n2o
https://github.com/voxoz/mq
Да доки почти нет, никак не могу въехать в весь этот стек. Там что-то дохрена всяких протоколов, еще больше разных зависимостей, понять как все устроено сложно.
В эликсир треде глухо. И вообще мне кажется там одни хипстеры, в эрланге они навряд ли шарят.
Smalltalk
Задачи по заработку лавэ
Быть дружелюбным к программисту.
Погугли, что означает слово "REPL", дебил. Спасибо.
Там наверное нету такого. Все-таки это же учебная иде, для преподавания в первую очередь. Но в качестве "скачал и хуяк-хуяк в продакшен" - один из лучших примеров, ящитаю, да.
> Lightmod is a tightly integrated tool for making full stack Clojure and ClojureScript web apps. It is fully self-contained -- no need to install the JDK or any build tool. It hot reloads both client and server code automatically with zero setup.
Чувак написал тайпчекер(!), который по совместительству следит за всеми значениями в работающей(!!) программе и на их основе эвристически(!!!) вычисляет вероятные ассерты, которые программер мог бы написать для этих значений(!!!!).
In Soviet Russia the code specs you.
>как же английский уебищно звучит
>нассал хипстоте в подвороты
Критик нашелся, лингвист херов. Ты же разговариваешь как помойка. Ртом срешь только.
>Критик нашелся
ну а чо, звучит словно хипстор в кепке хочет блевануть, а вместо блевотины вываливается кусок слова в три звука
Должен заметить, что он в чем-то прав.
Этот докладчик еще ничего, а там другие, в дерьмо куртках и с усиками девственников.
Доклады уровня курсач_4курс
При чем тут хипстеры. Он пишет, что английский для него плохо звучит. Зато его помойное наречие, с матом через слово хорошо звучит, хорошо для быдла.
а ты че так тригернулся? бесишься, что англопарашу кто то за язык не считает? мене еше ютубопидоры не нравятся, все что можно написать в пару абзацев с картинкам, растягивают на лекцию в академчас, причем с хуевой дикцией.
Видно ты кроме как срать ртом ничего не умеешь.
Не легко тебе прийдется в новом времени :)
Ну ничо, как-нибудь может быть справишься.
Попробуй например сфокусироваться на том, что чувак говорит, а не на том, как он выглядит.
>на том, что чувак говорит
манюнь, никто тебе ноухау не расскажет, а слушать очередной хипстерский пиздежь, увольте.
>в новом времени
время семантического шума
>Здесь хипстеры софт разрабатывают
генератор пропорций для смузи или вейпа? хипстеры по определению ничего толкового разработать не могут и они постоянно это подтверждают
зелененький, расслабься уже. Никто тут на твою "ряя английский, ряяя хипстер" не поведется.
С чего ты решил что он тригернулся? Он просто сказал тебе что ты мудак.
Иди потролль лучше в эликсир треде или го треде.
Будешь там королём :D
>Он просто сказал тебе что ты мудак.
причем его не оскорбляли
>эликсир треде или го треде.
тебя от туда пидорнули?
да, а теперь еще пидорнули и отсюда :) Новый тред я создавать не буду, как и заходить сюда. Упивайся своей крутостью и дерзостью в одиночестве или в компании таких же как ты.
Лулз в том, что он из Техаса. Да, не ебу, как это работает.
>При чем тут хипстеры.
Ну не причем так не причем.
> Он пишет, что английский для него плохо звучит. Зато его помойное наречие, с матом через слово хорошо звучит, хорошо для быдла.
Ну больной чел, че поделать.
Мне правда конкретно не понравилось как тот докладчик говорит, сложно что-то разобрать.
>Не легко тебе прийдется в новом времени :)
Да просто не касатся джава макакеннов и всего что сними связанно.
И будет норм.
>Недавно доклад яндекса смотрел, на их канале "Разработка". Так там сидел женоподобный паренек с дырками в ушах, в первом ряду причем. Но почему то никто не замечал, хотя под видео было не мало комментов.
Ты латентный гей or romеthing, или что?
Током ебнуть?
https://sekao.net/lightmod/ - этот?
Там же написано: ide со встроенным сервером, компайлером кложурскрипта, хоткод-релоадером и фреймворками. Ну чтоб скачал, запустил, хуяк-хуяк и в продакшн.
Не написано там про встроенный сервер, компилятор, и фреймворки. Про IDE ни слова нет. И вообще какие то лендинги сейчас не правильные делают. Описание в низу и маленьким шрифтом. Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра.
>Про IDE ни слова нет.
А по картинке не видно разве?
> Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра.
Тоже не удивлюсь, ибо полезность сего поделия мне представляется весьма сомнительной, например.
С другой стороны - она же для полных нубов, и сразу после картинки там идет ссылка на скринкаст. То есть если бы я был нубом, я бы как раз получил всю информацию, что мне нужна, в правильной последовательности. Чо это? Хуйня, которой хуячить веб аппы можно. А как оно выглядит воще? А вот так. Прикольно, а чо там делать воще можно? А вот чо. Заебись, где скачать? Вот здесь качай. И пока скачивается: депенденси есть какие-то? Жирным шрифтом: ноу нид ту инстал джейдэка.
Так что все в общем-то логично, но ненужно.
Господи, я раньше никогда, за редкими исключеними, не программировал, (однако знаком с общими парадигмами и очень поверхностно с крестами, бэйсиком, шарпом и питоном) но я даже представить себе не мог, что такое чудо, как lisp, существует. Это идеальный язык, безумно красивый и удобный для написания.
Я планировал после изучения cs выучить c++ и заняться написанием приложений на блокчейне, но теперь хочется послать это крестовое убожество. Потому вопрос: можно ли писать полноценные приложения, предполагающие массовое использование, на scheme? Я понимаю, что он тьюринг-полный, мой вопрос в том, имею ли я моральное и техническое право так делать?
Еще полистал книгу со слоном по haskell, тоже понравился из-за основы на лямбда-исчислении. Это будет моим запасным вариантом. Кресты и прочее - просто убрать из головы, забыть навсегда и никогда к ним не приходить.
>можно ли писать полноценные приложения, предполагающие массовое использование, на scheme?
Никто не запрещает. Но на лиспе и хаскелле ничего не пишут, поэтому платить тебе никто не будет. Выучи кресты или джаву и иди работать кодовой макакой, чо тут еще думать
На Clojure пишут что-то на тему блокчейна.
И прошу пояснить как распарсить аргументы командной строки в ecl, а то я чет совсем охуел от сложности.
>имею ли я моральное и техническое право так делать?
Если будешь говнокодить, то моральное право не имеешь.
"b" ≠ 'b
> И вообще какие то лендинги сейчас не правильные делают. Описание в низу и маленьким шрифтом. Не удивлюсь если у этой страницы 95% отказов в первые секунды просмотра.
Лол да.
Там появились какие-то бесплатные\платные шаблоны для сайтов, вида:
(большая_картинка еще_одна_огромная_картина строчка_текста_растянутая_на_весь_экран огромная_картинка большими_буквами_слоган копирайт)
Типо под мобильные девайсы, или чтобы месседж пипл лучше хавал, я не знаю. php макаки могли бы пояснить лучше.
Заходишь на сайт, видишь йоба картинку на весь экран и прокрутку длинной в Аллаха, и закрываешь вкладку.
И самое главное, инфы на таком сайте ноль. Одни слоганы.
Да то же самое: ты сравниваешь символы со строками, а лисп, напомню, не слаботипизированный, как какой-нибудь перл или жс
Да, я уже понял (string=)
Пили стартап
В жаббере была конфа
Цикл не нужен, строки с символами сравнивать не нужно, велосипеды не нужны
(defparameter fl '("lisp" "lsp" "cl" ))
(let ((path (parse-namestring "/tmp/test.lisp")))
__(format t "~:[Not~;~:~a is~] found"
____(find (pathname-type path) fl* :test #'equal)))
Ебаная разметка
(defparameter fl '("lisp" "lsp" ))
(let ((path (parse-namestring "/tmp/test.lisp")))
__(format t "~:[Not~;~:*~a is~] found"
____(find (pathname-type path) fl :test #'equal)))
Что плохого в совете начать с живого языка с библиотеками и нормальными реализациями, а не зоопарка несовместимых поделок для студентов?
Racket (бывший Scheme) проще чем Common Lisp. Если ты проходишь SICP, то лучше используй Racket. Ты не написал для чего тебе нужен Scheme, стоит сначала определиться с целью, и из этого можно будет понять какой язык лучше или хуже подходит.
> Racket 6.11 brings refinement types and dependent function types to its Typed Racket variant.
> Having dependent types in Typed Racket makes it possible to check properties of programs that you can’t express in almost any other language. We’re just starting to explore the kinds of improvements we can make to programs by using this new information, but we hope to make both faster and more reliable software using refinement and dependent types in Typed Racket.
Не то чтобы очень хочется. Хотелось бы сориентироваться, что хорошего (из языков) есть для системного программирования и систем реального времени (хотя бы мягкого).
Из лиспов для такого подойдёт разве что, ECL или что-то подобное.
А вообще garbage collector и real-time вместе не особо сочетаются.
Зависимые типы как в Idris? Почему здесь написано, что этой фичи нет в других языках?
Verification and Advanced Types in Racket - https://github.com/racket/racket/wiki/Verification-and-Advanced-Types-in-Racket
OCaml очень быстрый, хотя и имеет сборщик мусора. Непонятно что ты подразумеваешь под системным программированием, это расплывчатое понятие.
>подразумеваешь под системным программированием
resources management
memory management
Чтобы было возможно при кодировании как-то оценивать (хотя бы приблизительно) объём памяти для используемых выражений и время их работы (не знаю как назвать это свойство языка).
Нихуя ты, молодчина.
>объём памяти для используемых выражений и время их работы
Ты какой-то странный. Это можно сделать практически для любого языка, и системное программирование тут ни при чем.
Потому что dependent types + refinement types + occurence typing + еще к тому же типы интегрированы в систему контрактов, то есть вся информация о них (опционально) есть в том числе и в рантайме. Ну и плюс еще линейные типы пилят, да.
То есть у тебя есть все возможности, которые предоставляют все статически-типизированные языки вместе взятые, но в динамическом по умолчанию языке. То есть ты можешь хуяк-хуяк и в продакшен, а потом по мере срефакторивания кода и стабилизации кодобазы добавлять типы - причем настолько гранулированные, насколько тебе это нужно, в зависимости от отношения важности кода к имеющемуся времени. Короче, получается, что это одна из самых мощных и определенно самая гибкая система типов на сегодня.
dependent types vs refinement types:
https://cs.stackexchange.com/questions/21728/dependent-types-vs-refinement-types
Во-первых, где ты тут интерпретируемые языки увидел? Во-вторых, "объём памяти для используемых выражений и время их работы" - вещь абсолютно ортогональная компилируемости\интерпретируемости.
>Во-первых, где ты тут интерпретируемые языки увидел?
Не понял, к чему ты это спрашиваешь.
>Во-вторых, "объём памяти для используемых выражений и время их работы" - вещь абсолютно ортогональная компилируемости\интерпретируемости.
А пруфы дашь?
Правда глаза колет? И ведь насколько у вас, ракетчиков, все плохо, что даже на "толстоту" ответить нечем, сразу начинаются маневры и виляния.
>Не понял, к чему ты это спрашиваешь.
И общелисп, и схема, и кложурь - компилируемые языки. Так что это я не понял, к чему ты интерпретируемые языки вспомнил.
> А пруфы дашь?
Пруфы чего, блядь? Сложность алгоритмов не зависит от интерпретируемости\компилируемости. Модель работы с памятью не зависит от интерпретируемости\компилируемости. Ленивость\энергичность вычислений не зависит от интерпретируемости\компилируемости. На что тебе пруфы давать?
Я не пишу на ракетке.
>>095653
Онемеговно!1 Подозреваю, что это "что" называется 2ch.hk. Ну-ка быстро http://www.ccs.neu.edu/home/matthias/HtDP2e/ читать, ле ленись!
>И общелисп, и схема, и кложурь - компилируемые языки.
В нативный код? Кложур компилируется в байт-код.
Ну и? А что ты ещё хотел от хипстерского препроцессора явы?
>>095927
Иди уже читай любой энтри-левел учебник по программированию, раз у тебя "для запуска нужна виртуальная машина" == "интерпретатор". Да и еще все это как-то связано со сложностью алгоритмов и предсказуемостью (де)аллокаций памяти. Либо ртфм, либо задавай конкретные, внятные вопросы, если тебе что-то непонятно. Срать в треде не надо.
>>095903
Ну типа, чувак, ЭМ АЙ ТИ, все дела. Какой вуз - такие и первокуры.
Ну давай разбирать по частям, тобою написанное ))
1. Неактуально.
2. Отчасти правда, но в выводе все наоборот. Плох не нил паннинг, а путаница между фолсом и нилом. Проблема не в нил паннинге, а в буленах. Нил паннинг - няша, оче удобно и значительно сокращает\упрощает код. Алсо, в той же кложе есть отдельные функции для truthy\falsey и для nil\not-nil. Например, (when foo ...) выполняется, когда foo не нил и не фолс, а (when-some [x foo] ...) выполняется, когда foo не нил. Единственная проблема в том, что этого там не было в первой же версии. Короче - проблема в буленах, а не в нил-паннинге.
3. Бла-бла-бла. Все знают, что кл полон хует и говна, неактуально.
4. Чувак вообще не в теме. Любой лисп к лямбда калькулюсу имеет такое же отношение, какое современные процессоры имеют к машине тьюринга, так что это максимально дебильный аргумент. Списки не должны использоваться ни для чего, кроме базовых вещей (представления кода, например), так что предложение на основе списков делать интерфейс к файловой системе демонстрирует, что автор - феерический долбоеб. Тот факт, что он называет протоколы кложи "ад-хоковыми костылями" демонстрирует, что он еще и живет в каком-то волшебном манямирке: вообще-то протоколы (они же тайпклассы) - это стандартный подход к полиморфизму во всех современных языках. Гугли expression problem.
5. Бла-бла-бла, опять кл-специфичная хуита.
6. Бла-бла-бла, опять из той же оперы. Если бы аффтар знал, как появился стандарт кл, то не ныл бы на эту очевидную тему. Особенно доставил пассаж про let - дебил даже не знает, что лет принимает список биндингов, а не только одну пару имя-значение. Что тут вообще обсуждать тогда?
7. "doesn't support vector arithmetic" - что за пиздец? Дебил не слышал про то, что можно (барабанная дробь) БИБЛИОТЕКИ ПОДКЛЮЧАТЬ? Это пиздец какой-то, надеюсь, что это толстый троллинг. Про call-by-name тоже смешно пошутил - по его логике получается, что ML - не функциональный язык. Ну и чувак не в курсе, что в кложе (как и в скиме) есть система типов. Пусть говна поест, короче.
8. Дебил опять не знает, о чем пишет. Комьюнити кложи - одно из самых helpful среди всех языков, о чем говорят и результаты опросов, и постоянные упоминания этого факта в любом блоге про нее.
> GNU/Emacs (an orthodox command line text editor without mouse support or any GUI at all)
Ну вот это просто бесподобный перл. Дебил не знает абсолютно ничего о том, о чем он пишет. В каждом предложении factually wrong утверждения.
В итоге имеем только один пункт, который указывает на реально существующую особенность\проблему, но и тот с хуевым анализом.
Вердикт: толстый троллинг. Автор - дебил и ест говно. Подозреваю, что его назвали ретардом на #lisp, и оттого он высрал эту блевотину. Уноси нахуй.
Ну давай разбирать по частям, тобою написанное ))
1. Неактуально.
2. Отчасти правда, но в выводе все наоборот. Плох не нил паннинг, а путаница между фолсом и нилом. Проблема не в нил паннинге, а в буленах. Нил паннинг - няша, оче удобно и значительно сокращает\упрощает код. Алсо, в той же кложе есть отдельные функции для truthy\falsey и для nil\not-nil. Например, (when foo ...) выполняется, когда foo не нил и не фолс, а (when-some [x foo] ...) выполняется, когда foo не нил. Единственная проблема в том, что этого там не было в первой же версии. Короче - проблема в буленах, а не в нил-паннинге.
3. Бла-бла-бла. Все знают, что кл полон хует и говна, неактуально.
4. Чувак вообще не в теме. Любой лисп к лямбда калькулюсу имеет такое же отношение, какое современные процессоры имеют к машине тьюринга, так что это максимально дебильный аргумент. Списки не должны использоваться ни для чего, кроме базовых вещей (представления кода, например), так что предложение на основе списков делать интерфейс к файловой системе демонстрирует, что автор - феерический долбоеб. Тот факт, что он называет протоколы кложи "ад-хоковыми костылями" демонстрирует, что он еще и живет в каком-то волшебном манямирке: вообще-то протоколы (они же тайпклассы) - это стандартный подход к полиморфизму во всех современных языках. Гугли expression problem.
5. Бла-бла-бла, опять кл-специфичная хуита.
6. Бла-бла-бла, опять из той же оперы. Если бы аффтар знал, как появился стандарт кл, то не ныл бы на эту очевидную тему. Особенно доставил пассаж про let - дебил даже не знает, что лет принимает список биндингов, а не только одну пару имя-значение. Что тут вообще обсуждать тогда?
7. "doesn't support vector arithmetic" - что за пиздец? Дебил не слышал про то, что можно (барабанная дробь) БИБЛИОТЕКИ ПОДКЛЮЧАТЬ? Это пиздец какой-то, надеюсь, что это толстый троллинг. Про call-by-name тоже смешно пошутил - по его логике получается, что ML - не функциональный язык. Ну и чувак не в курсе, что в кложе (как и в скиме) есть система типов. Пусть говна поест, короче.
8. Дебил опять не знает, о чем пишет. Комьюнити кложи - одно из самых helpful среди всех языков, о чем говорят и результаты опросов, и постоянные упоминания этого факта в любом блоге про нее.
> GNU/Emacs (an orthodox command line text editor without mouse support or any GUI at all)
Ну вот это просто бесподобный перл. Дебил не знает абсолютно ничего о том, о чем он пишет. В каждом предложении factually wrong утверждения.
В итоге имеем только один пункт, который указывает на реально существующую особенность\проблему, но и тот с хуевым анализом.
Вердикт: толстый троллинг. Автор - дебил и ест говно. Подозреваю, что его назвали ретардом на #lisp, и оттого он высрал эту блевотину. Уноси нахуй.
>Сложность алгоритмов
Ты про асимптотику зависимости размера требуемой памяти или времени вычисления от некоторого размера входных данных? Но я не об этом. Далеко не всегда бывает достаточно (для системного программирования) ясно сколько памяти в какой момент потребует наличие нек. выражения в программе или сколько времени займёт его вычисление (особенно в условиях GC).
>Либо ртфм, либо задавай конкретные, внятные вопросы, если тебе что-то непонятно
Конкретный вопрос: как скомпилировать без линковки со стандартной либой ecl? Если возможно, то как скомпилировать под винду c gui sybsystem? Что бы консоль не выскакивала постоянно. Если я использую сторонние либы (ql:quickload "abc"), как это все скомпилировать в один бинарник? Все вопросы подразумевают использование ECL.
>как скомпилировать без линковки со стандартной либой ecl?
Статически чтоль? Читай тут
https://common-lisp.net/project/ecl/static/ecldoc/Extensions.html#Compiling-with-ASDF>>096452
>Если возможно, то как скомпилировать под винду c gui sybsystem?
Точно можно, ловсанчик даже с сбцл такое проворачивал. Но как - не подскажу, шиндовса не знаю.
>Если я использую сторонние либы (ql:quickload "abc"), как это все скомпилировать в один бинарник?
Указываешь зависимости в определении asdf-системы и компилишь. Читай выше.
Я в урл не смотри @ в тред отвечай. Ну и все равно полезно.
> Модель работы с памятью не зависит от интерпретируемости\компилируемости. Ленивость\энергичность вычислений не зависит от интерпретируемости\компилируемости.
А не пиздишь ли? Что-то очень слабо верится, что кто-то на этом наркоманском поделии пишет, кроме самого автора.
Вот я честно говоря присоединяюсь к анону выше. Ну то есть я не вижу ничего особо невероятного в том, что кто-то пилит внутренние проекты на том, на чем хочется, но... ЗАЧЕМ?! Пиколисп и вправду какой-то наркоманский.
>У меня в конторе пара коллег пилят внутренние проекты на PicoLisp-e. Если кому интересно, то вот https://picolisp.com/wiki/?home ознакомление по пике. Ещё рекомендую читануть https://habrahabr.ru/post/177791/ .
>На практике, компилятор усложняет систему в целом. Такие особенности, как стратегии множественного связывания, типизированные переменные и макросы были разработаны для удовлетворения нужд компиляторов. Система получается раздутой, потому что она должна поддерживать также и интерпретатор, и соответственно, две различные архитектуры.
L O L
O
L
>Иди уже читай любой энтри-левел учебник по программированию, раз у тебя "для запуска нужна виртуальная машина" == "интерпретатор".
Ну давай расскажи как запускать файлы .java без JVM, JRE.
А тебя-то что сподвигло о нем написать? Имеешь положительный опыт использования?
И, кстати, если спроецировать твои суждения на, например, сишку, то окажется, что она тоже интерпретируемая, потому что x86 не выполняет непосредственно инструкции, а интерпретирует их с помощью низлежащего ядра.
Ну, в гринтексте все правильно как бы написано, в чем лол-то? Ты никогда не писал компиляторы?
>>100845
Ну то есть профит в том, что там оче маленькое ядро и нормальный апп-сервер с хттп-стеком искаропки? Я бы, конечно, не рискнул все-таки такое брать и все поддерживать самому, но раз ребятам нравится и это решает их проблемы - почему бы и нет, угу.
>>100895
Во дебил. Хуль ты из своего пхп-треда вылез?
> (list :one 1 :two 2)
Элемент 1 по ключу :one. Как мне это сделать правильно? Пока в своем коде просто наговнокодила такую штуку:
>(defun get-my-elem (key list)
> (let ((pos (cl-position key list)))
> (when bound-and-true-p pos)
> (nth (+ 1 pos) list))))
Но выглядит это как-то неправильно. Такой список мне выдает org-element-at-point, и почему это не property list / association list я не понимаю. Но факт остается фактом -- это просто сраный список.
>Ну, в гринтексте все правильно как бы написано, в чем лол-то? Ты никогда не писал компиляторы?
Ты прикидываешься шизиком, или серьезно?
ЛОЛ в том, что типизированные переменные, и маркросы, были разработаны вовсе не для удовлетворения нужд компилятора, а для удовлетворения нужд человеков по написанию программ.
Внезапно, это компилятор вынужден с типизацией ебатся, проверяя ее, оно ему нужно?
Да, там маленькое ядро, Бургер язык за год смог переписать с С на асме. При этом, он довольно шустрый насколько я понял. Я бы может тоже его поизучал, но сперва хочу с хаскелем разобраться
Программист на пайтоне.
Бросил, перечитываю сисп, планирую укатываться в лисп. Какие подводные? Лисп за жизнь в глаза не видел (почти).
>Какие подводные?
Потом не слезешь.
>сисп
То вводные лекции в программирование, а не про лисп. PCL читай, On Lisp.
Не читай PCL и On Lisp. Ну разве что вторую можно прочитать для общего развития, а первую даже не открывай. Алсо, имей в виду, что Common Lisp уродлив и мертв, он тебе не нужен. Если хочешь теории и для души - бери схемку (plt racket), если хочешь пилить распределенные опердени на реакте с аи и бигдатой - бери clojure\clojurescript.
Типы изначально были придуманы для того, чтобы компилятор мог знать, куда сколько байт сувати. Собственно, в каком-нибудь llvm и ко они и сейчас для этой цели используются.
Макросы, очевидно, не нужны в полностью интерпретируемом языке. Подумай, почему (перед этим удостоверься, что знаешь, что такое макросы).
Да, нужно. Ты никогда не писал ни одного компилятора. Возвращайся в свой пхп-тред с таким аттитьюдом.
>>101439
Вообще, по идее для таких штук у нас должны быть форты, но хуй знает, на них только совсем уж низкоуровневую хуиту пишут. Хотя по замыслу он как раз должен быть таким же, как этот пиколисп - "высокоуровневый низкоуровневый ЯП", лол.
>Да, нужно. Ты никогда не писал ни одного компилятора. Возвращайся в свой пхп-тред с таким аттитьюдом.
Вот тебе нитка и иголка. Зашивайся.
>Макросы, очевидно, не нужны в полностью интерпретируемом языке. Подумай, почему (перед этим удостоверься, что знаешь, что такое макросы).
> полностью интерпретируемом языке
Это пушка.
Мамин разработчик компиляторов. Скажи-ка, чем интерпретация отличается от выполнения бинарных инструкций процессором?
>Макросы, очевидно, не нужны в полностью интерпретируемом языке
Как в PHP и JS? :))))))
>Типы изначально были придуманы для того, чтобы компилятор мог знать, куда сколько байт сувати.
Ну раз ты скозал, то ладно тогда.
А может быть дело в том, что типы данных неотъемлемая часть информации как явления в нашей реальности?
Конечно нет, это все из за компиляторов, такой авторитет как ты не может ошибаться. )))))
О, а вот и сектанты подоспели.
>Не читай PCL и On Lisp. Ну разве что вторую можно прочитать
A PCL-то тебе чем не угодил? По-моему неплохое практическое ознакомление с лисп-вэем, с интерактивной разработкой и т.д.
>что Common Lisp уродлив и мертв
Может быть, лет с десять назад и был некоторый застой в сообществе из-за высокого порога входа, но с появлением quicklisp'а оно заметно оживилось.
Уродлив ли? Ну, имеются некоторые архаизмы от старых диалектов, но их давно напрямую никто не использует, и в этом не возникает необходимости, потому что тут же имеются и современные альтернативы. Как, например, универсальный setf заменяет все setq, rplac{a,d} и прочие. К тому же, существуют проекты по реорганизации о осовремениванию стандартной библиотеки. Но это пустяки по сравнению с уродствами clojure, которые она добровольно унаследовала от джавы ради интеропа. Как препроцессор для джавы она, может быть, и не плоха, но это не полноценный язык (inb4 не баг, а фича) и только лишь одна платформа одна у кложи и одна у её брата - кложескрипта.
>чем интерпретация отличается от выполнения бинарных инструкций процессором?
Иди почитай, что такое "компиляция". Потом возвращайся в свой пхп-тред. Свободен.
>>101879
Мы не сетанты, мы прагматики, лiл.
> A PCL-то тебе чем не угодил?
Понимаешь, когда обычный человек увидит целую главу про ненужный и кривой loop, он скорее всего все бросит, убежит в страхе и больше никогдане будет трогать лишпы. Ну и в целом книжка не про лисп-вей, а про коммонлисп-вей. Там оче много хаков, плохого кода, оче мало функциональщины, ну и в целом он не прививает хороший стиль написания кода (особенно по части макросов).
> с появлением quicklisp'а оно заметно оживилось
Согласен. Ладно, может быть насчет "мертв" я переборщил, но это смотря с чем сравнивать а все мы понимаем, с чем нынче кл надо сравнивать.
> реорганизации о осовремениванию стандартной библиотеки
Вот когда эти проекты станут дефолтом (как в том же окамле) - тогда и можно будет советовать кл начинающим. Сейчас он их только отпугнет и испортит впечатление о лишпах вообще.
> которые она добровольно унаследовала от джавы ради интеропа
Чувак, извини за прямоту, но по твоему посту угадывается, что ты ничего не писал на кложе и элементарно нихуя с ней не знаком, так что я не вижу смысла устраивать холивар кл вс клж.
Особенно учитывая, что мой пост не про одну кложу был. Я там вполне конкретно написал, что куда, и возражений по этой части у тебя, как я понимаю, нет:
> Если хочешь теории и для души - бери схемку (plt racket), если хочешь пилить распределенные опердени на реакте с аи и бигдатой - бери clojure\clojurescript.
>Иди почитай, что такое "компиляция". Потом возвращайся в свой пхп-тред. Свободен.
У тебя шизофрения вперемешку с комплексом наполеона.
Держи в курсе, спасибо за бампы.
>Там оче много хаков, плохого кода, оче мало функциональщины, ну и в целом он не прививает хороший стиль написания кода
Вот уж не помню, плох ли там, хорош ли был код, но значения это не имеет. Главное, что показан метод решения проблемы при тесном взаимодействии с реплом и что за зверь эти лиспо-макросы и насколько они далеки от макросов сишного препроцессора. А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.
Что до статьи про loop, я даже не поленился открыть её, полистать. Ничего там такого страшного нет. Единственное, что какого-нибудь озабоченного чистотой хаскелиста можно спугнуть, хотя я и сам таким был, но, как видишь, меня это не остановило.
>Вот когда эти проекты станут дефолтом (как в том же окамле)
А где они стали дефолтом? В официальном руководстве до сих пор та же хуёвая стдлиб, что и была. ExtLib, судя по дате последнего изменения, ещё не уступил место janestreet, значит и де-факто никакого дефолта нет.
>но по твоему посту угадывается, что ты ничего не писал на кложе
Да, непродолжительного знакомства мне хватило. Писать на какбы-лиспе с жавой в уме, которая и на минутку не позволяет о себе забыть, немного утомительно. Чуть что - у вас тут жава, товарищ, лезь в жавадок, читай, дергай методы напрямую (Трустори, кстати. Я немного прихуел, когда неоднократно на SO лучшее, что предлагали для решения каких-то пустяковых проблем, было использование потрохов жавы), а пока держи стектрейс вместо дружелюбных перезапусков. А лиспификацией библиотек - тех необъятных сокровищ jvm, из-за которых весь сыр-бор - никто даже и не думал себя утруждать, и практически любой код сложнее факториала выглядел как нелепый суржик. Думаю, и сейчас мало что изменилось, ведь идиоматика у лиспа и явы слишком разная, и привести одну к другой - задача довольно трудозатратная. Ну и ещё одна значительная причина - как живая программируемая среда кложа откровенно слабее общелиспа, очень не хватает вместо исключений сигнального протокола с перезапусками, гибкости и динамичности CLOS'а объектной системе и т.д. по мелочам.
Кложескрипт я даже и щупать не стал, увидев там тот же суржик. Да и на кой он нужен, когда есть более однородный и приятный Elm?
>Особенно учитывая, что мой пост не про одну кложу был.
А про другое я и писать не стал, потому что ты и сам её охарктеризовал как с практической точки зрения бестолковую платформу, годную лишь на поучиться по сикпу студентам да побаловаться ностальгирующим.
>Там оче много хаков, плохого кода, оче мало функциональщины, ну и в целом он не прививает хороший стиль написания кода
Вот уж не помню, плох ли там, хорош ли был код, но значения это не имеет. Главное, что показан метод решения проблемы при тесном взаимодействии с реплом и что за зверь эти лиспо-макросы и насколько они далеки от макросов сишного препроцессора. А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.
Что до статьи про loop, я даже не поленился открыть её, полистать. Ничего там такого страшного нет. Единственное, что какого-нибудь озабоченного чистотой хаскелиста можно спугнуть, хотя я и сам таким был, но, как видишь, меня это не остановило.
>Вот когда эти проекты станут дефолтом (как в том же окамле)
А где они стали дефолтом? В официальном руководстве до сих пор та же хуёвая стдлиб, что и была. ExtLib, судя по дате последнего изменения, ещё не уступил место janestreet, значит и де-факто никакого дефолта нет.
>но по твоему посту угадывается, что ты ничего не писал на кложе
Да, непродолжительного знакомства мне хватило. Писать на какбы-лиспе с жавой в уме, которая и на минутку не позволяет о себе забыть, немного утомительно. Чуть что - у вас тут жава, товарищ, лезь в жавадок, читай, дергай методы напрямую (Трустори, кстати. Я немного прихуел, когда неоднократно на SO лучшее, что предлагали для решения каких-то пустяковых проблем, было использование потрохов жавы), а пока держи стектрейс вместо дружелюбных перезапусков. А лиспификацией библиотек - тех необъятных сокровищ jvm, из-за которых весь сыр-бор - никто даже и не думал себя утруждать, и практически любой код сложнее факториала выглядел как нелепый суржик. Думаю, и сейчас мало что изменилось, ведь идиоматика у лиспа и явы слишком разная, и привести одну к другой - задача довольно трудозатратная. Ну и ещё одна значительная причина - как живая программируемая среда кложа откровенно слабее общелиспа, очень не хватает вместо исключений сигнального протокола с перезапусками, гибкости и динамичности CLOS'а объектной системе и т.д. по мелочам.
Кложескрипт я даже и щупать не стал, увидев там тот же суржик. Да и на кой он нужен, когда есть более однородный и приятный Elm?
>Особенно учитывая, что мой пост не про одну кложу был.
А про другое я и писать не стал, потому что ты и сам её охарктеризовал как с практической точки зрения бестолковую платформу, годную лишь на поучиться по сикпу студентам да побаловаться ностальгирующим.
Примечательно не только как пример приложения на общелиспе под ведроид, но и, собственно, как средство разработки на андроиде. Сванк из коробки, квиклисп тоже.
Пришлось очень кстати, когда понадобилось напедалить скриптик на лопате.
>Вот уж не помню, плох ли там, хорош ли был код, но значения это не имеет.
Ну нихуя себе предъявы. У нас с тобой значит абсолютно разное мировоззрение - я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.
> показан метод решения проблемы при ...
Ээ, ну так про это есть еще сотня (более лучших) книжек и миллион блогпостов, зачем из всех альтернатив выбирать именно хуевую? Синдром утенка, не?
> А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.
Ну кривишь ты душой. Не верю, что ты в это веришь. Если человек читает хуевый код, то он (с большой долей вероятности) и будет писать хуевый код, ну.
> Ничего там такого страшного нет.
...кроме собственно (ненужного, кривого) loop'а.
> А где они стали дефолтом?
В окамле</autism-mode>. Ну ладно, у них не один дефолт, а целых три, но афаик все разумные люди пользуются Core, и емнип в real-world ocaml используется он же. Так что де-факто дефолт как раз есть (https://www.reddit.com/r/ocaml/comments/665w26/which_standard_library_is_the_best/).
> Да, непродолжительного знакомства мне хватило.
Ну так а нахуя ты осуждаешь, если не читал?
> с жавой в уме
By design. Лучше держать в уме жаву (которую энивей знает любой разработчик из того домейна, на которую рассчитана кложа), чем разбираться в новой платформе, которой - спойлер! - и нет нихуя, ибо вместо платформы полторы либы без доков, которые никто не поддерживает. Я утрирую, но ты знаешь, что это так.
> лиспификацией библиотек
Самое идиотское времяпрепровождение, которое можно себе придумать. Тебе шашечки или ехать?
> идиоматика у лиспа и явы слишком разная
У какого "лиспа"? У "лиспа" нет никакой идиоматики, лисп - это просто скобочки. Никто ведь не говорит об "идиоматике алголоподобных языков", имея в виду пюре си, кресты и сисярп, ну. Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity. Джава на эту идиоматику ложится идеально, жаваскрип - чуть хуже, но тоже норм. В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".
> очень не хватает вместо исключений сигнального протокола с перезапусками
Согласен, эксепшены сосут, у стектрейсов сосешь сам. Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.
> гибкости и динамичности CLOS'а объектной системе
А вот тут не уверен, что согласен. Приведешь конкретный юзкейс?
> Elm?
на кой он нужен, когда есть более мощный и прагматичный clojurescript?
> ты и сам её охарктеризовал как с практической точки зрения бестолковую платформу
Ну нет, я такого не говорил. Я лишь указал на тот юзкейс, где она показывает себя лучше всего. Слышал про примеры ее использования, вроде все были довольны, так что у меня нет оснований говорить, что она вообще непригодна для практики.
Короче, у меня пока сложилось о тебе впечатление как о хейтере, который не писал\не разобрался, но на основании каких-то косметических штук сделал вывод, что НЕ НРАВИТСЯ. Ирония в том, что это типичный аргумент лиспохейтеров вообще - СКОБОЧКИ НИПАНЯТНА НИНРАВИЦА. А мы все тут все-таки посвященные, лол, должны понимать, что зрить надо в корень, а не на скобочки. Как-то так.
>Вот уж не помню, плох ли там, хорош ли был код, но значения это не имеет.
Ну нихуя себе предъявы. У нас с тобой значит абсолютно разное мировоззрение - я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.
> показан метод решения проблемы при ...
Ээ, ну так про это есть еще сотня (более лучших) книжек и миллион блогпостов, зачем из всех альтернатив выбирать именно хуевую? Синдром утенка, не?
> А стиль написания книжными примерами не попортишь, не улучшишь - он практикой формируется.
Ну кривишь ты душой. Не верю, что ты в это веришь. Если человек читает хуевый код, то он (с большой долей вероятности) и будет писать хуевый код, ну.
> Ничего там такого страшного нет.
...кроме собственно (ненужного, кривого) loop'а.
> А где они стали дефолтом?
В окамле</autism-mode>. Ну ладно, у них не один дефолт, а целых три, но афаик все разумные люди пользуются Core, и емнип в real-world ocaml используется он же. Так что де-факто дефолт как раз есть (https://www.reddit.com/r/ocaml/comments/665w26/which_standard_library_is_the_best/).
> Да, непродолжительного знакомства мне хватило.
Ну так а нахуя ты осуждаешь, если не читал?
> с жавой в уме
By design. Лучше держать в уме жаву (которую энивей знает любой разработчик из того домейна, на которую рассчитана кложа), чем разбираться в новой платформе, которой - спойлер! - и нет нихуя, ибо вместо платформы полторы либы без доков, которые никто не поддерживает. Я утрирую, но ты знаешь, что это так.
> лиспификацией библиотек
Самое идиотское времяпрепровождение, которое можно себе придумать. Тебе шашечки или ехать?
> идиоматика у лиспа и явы слишком разная
У какого "лиспа"? У "лиспа" нет никакой идиоматики, лисп - это просто скобочки. Никто ведь не говорит об "идиоматике алголоподобных языков", имея в виду пюре си, кресты и сисярп, ну. Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity. Джава на эту идиоматику ложится идеально, жаваскрип - чуть хуже, но тоже норм. В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".
> очень не хватает вместо исключений сигнального протокола с перезапусками
Согласен, эксепшены сосут, у стектрейсов сосешь сам. Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.
> гибкости и динамичности CLOS'а объектной системе
А вот тут не уверен, что согласен. Приведешь конкретный юзкейс?
> Elm?
на кой он нужен, когда есть более мощный и прагматичный clojurescript?
> ты и сам её охарктеризовал как с практической точки зрения бестолковую платформу
Ну нет, я такого не говорил. Я лишь указал на тот юзкейс, где она показывает себя лучше всего. Слышал про примеры ее использования, вроде все были довольны, так что у меня нет оснований говорить, что она вообще непригодна для практики.
Короче, у меня пока сложилось о тебе впечатление как о хейтере, который не писал\не разобрался, но на основании каких-то косметических штук сделал вывод, что НЕ НРАВИТСЯ. Ирония в том, что это типичный аргумент лиспохейтеров вообще - СКОБОЧКИ НИПАНЯТНА НИНРАВИЦА. А мы все тут все-таки посвященные, лол, должны понимать, что зрить надо в корень, а не на скобочки. Как-то так.
>и емнип в real-world ocaml используется он же
Конечно, что ещё может посоветовать janestreet, кроме своего core?
>Так что де-факто дефолт как раз есть
Таки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.
>я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.
Снова не поленился, полистал PCL. Где ты там хуевый код увидел? Да, есть немного неестественные примеры, но, очевидно, они такие, чтобы не переусложняя код показать в действии, например, те же макросы.
>Синдром утенка, не?
Не. Я просто знаю, что важные с моей точки зрения аспекты в ней рассмотрены правильно, потому и советую. А изучать альтернативы у меня нет ни интереса, ни времени, ни желания. Тем более, что ни одна из "сотен" озвучена не была.
>> лиспификацией библиотек
>Самое идиотское времяпрепровождение, которое можно себе придумать.
Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть? Как такого вообще на кложу-то занесло? Я бы не удивился, услышав такое от жава- или го-кодера, но не от лиспера. Хотя кложуристы...
>Ну так а нахуя ты осуждаешь, если не читал?
Пробовал и делюсь своими впечатлениями. И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.
>By design.
>Лучше держать в уме жаву
>Протекающие by design абстракции, семантика с двойным дном - так несомненно лучше, именно так мы избавляемся от сложности (которая complexity)!
Дяденька, а вы точно не сектанты?
На самом деле, лучше писать на полноценных языках и не держать низлежащую платформу в уме, пусть этим занимается компилятор. Вот казалось бы, второе десятилетие XXI века, время всяких MASM'ов давно прошло и тут бац! - появляется кложура. И что с этим миром не так?
>У какого "лиспа"?
Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.
>В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".
Ну, судя по тому, что мы сидим в одном треде, и ты посоветовал человеку, заинтересовавшемуся лиспом, кложу и схему вместо общелиспа, они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.
>Джава на эту идиоматику ложится идеально,
Хочешь сказать, всякие абстрактные фабрики фабрик, фасолины и прочие вынужденно причудливые формы проявления инженерной мысли жава-архитекторов не будут инородными/неидиоматичными в кложе, где мало того, что едсли, макросы, функциональщина, иммутабельность во все поля, так ещё и динамическая типизация, упраздняющая львиную часть паттернов?
>Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity.
Это слоган, а не идиоматика.
>Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.
Что ж ты не на жаве/жс тогда пишешь? Ммм?
>и емнип в real-world ocaml используется он же
Конечно, что ещё может посоветовать janestreet, кроме своего core?
>Так что де-факто дефолт как раз есть
Таки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.
>я принципиально не понимаю, зачем учиться программировать (на языкнейм) по книжкам с хуевым кодом.
Снова не поленился, полистал PCL. Где ты там хуевый код увидел? Да, есть немного неестественные примеры, но, очевидно, они такие, чтобы не переусложняя код показать в действии, например, те же макросы.
>Синдром утенка, не?
Не. Я просто знаю, что важные с моей точки зрения аспекты в ней рассмотрены правильно, потому и советую. А изучать альтернативы у меня нет ни интереса, ни времени, ни желания. Тем более, что ни одна из "сотен" озвучена не была.
>> лиспификацией библиотек
>Самое идиотское времяпрепровождение, которое можно себе придумать.
Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть? Как такого вообще на кложу-то занесло? Я бы не удивился, услышав такое от жава- или го-кодера, но не от лиспера. Хотя кложуристы...
>Ну так а нахуя ты осуждаешь, если не читал?
Пробовал и делюсь своими впечатлениями. И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.
>By design.
>Лучше держать в уме жаву
>Протекающие by design абстракции, семантика с двойным дном - так несомненно лучше, именно так мы избавляемся от сложности (которая complexity)!
Дяденька, а вы точно не сектанты?
На самом деле, лучше писать на полноценных языках и не держать низлежащую платформу в уме, пусть этим занимается компилятор. Вот казалось бы, второе десятилетие XXI века, время всяких MASM'ов давно прошло и тут бац! - появляется кложура. И что с этим миром не так?
>У какого "лиспа"?
Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.
>В целом, я бы, например, не стал рассуждать об идиоматике языка, с которым у меня было только "непродолжительное знакомство".
Ну, судя по тому, что мы сидим в одном треде, и ты посоветовал человеку, заинтересовавшемуся лиспом, кложу и схему вместо общелиспа, они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.
>Джава на эту идиоматику ложится идеально,
Хочешь сказать, всякие абстрактные фабрики фабрик, фасолины и прочие вынужденно причудливые формы проявления инженерной мысли жава-архитекторов не будут инородными/неидиоматичными в кложе, где мало того, что едсли, макросы, функциональщина, иммутабельность во все поля, так ещё и динамическая типизация, упраздняющая львиную часть паттернов?
>Идиоматика кложи - прагматичность, изоляция сайд-эффектов, минимум accidental complexity.
Это слоган, а не идиоматика.
>Но это в первую очередь вопрос удобства программиста, то есть не самая важная вещь.
Что ж ты не на жаве/жс тогда пишешь? Ммм?
>Может быть, лет с десять назад и был некоторый застой в сообществе из-за высокого порога входа, но с появлением quicklisp'а оно заметно оживилось.
Примеры Common Lisp в продакшене есть, в СНГ? Даже на Clojure пишут в СНГ, и вакансии периодически появляются, но про использование CL не слышал.
>Конечно, что ещё может посоветовать janestreet, кроме своего core?
При чем тут это? Стандартная книжка советует стандартную библиотеку. Мне кажется, этот вопрос закрыт.
> Таки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.
Ну а я сомневаюсь, что хотя бы 10% продакшн аппликейшенов не зависят от кора. Цифр нет ни у тебя, ни у меня, так что к чему гадать-то?
> Где ты там хуевый код увидел?
На 18 странице.
>>Синдром утенка, не?
>Не.
>изучать альтернативы у меня нет ни интереса, ни времени, ни желания
Ну как скажешь.
> Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть?
Нет.
> Как такого вообще на кложу-то занесло?
Потыкал CL, переехал на схемку, начал пилить одну штуку, понял, что либ нихуя нет, а потом увидел того кудрявого симпатяшку и все заверте...
> И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.
У тебя в первом же посте фактические ошибки - про платформы, например.
> Протекающие by design абстракции, семантика с двойным дном
Примеры первого и определение второго в студию.
> не держать низлежащую платформу в уме, пусть этим занимается компилятор
Много ты браузерных аппов написал, не держа браузер в уме? inb4: ни одного, я не такой
> Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.
Ну тогда озвучь, в чем состоит эта "идиоматика лиспа".
> они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.
Ну, вообще-то далеки. И при чем тут "в сравнении с жавой", если я говорю о том, что вообще в принципе не надо пиздеть о том, в чем не шаришь, ну?
> Хочешь сказать ...
Эм, тебя кто-то заставлял писать фабрики фасолин на кложе?
> Это слоган, а не идиоматика.
Определение в студию.
> Что ж ты не на жаве/жс тогда пишешь?
Эм, и на них тоже пишу разумеется. Странный вопрос.
>Конечно, что ещё может посоветовать janestreet, кроме своего core?
При чем тут это? Стандартная книжка советует стандартную библиотеку. Мне кажется, этот вопрос закрыт.
> Таки сомневаюсь, что хотя бы половина кода на опаме зависит от кора.
Ну а я сомневаюсь, что хотя бы 10% продакшн аппликейшенов не зависят от кора. Цифр нет ни у тебя, ни у меня, так что к чему гадать-то?
> Где ты там хуевый код увидел?
На 18 странице.
>>Синдром утенка, не?
>Не.
>изучать альтернативы у меня нет ни интереса, ни времени, ни желания
Ну как скажешь.
> Ты из тех прагматиков, которые целый марафон прихрамывая бегут с камнем в ботинке, потому что у них нет времени его вытряхнуть?
Нет.
> Как такого вообще на кложу-то занесло?
Потыкал CL, переехал на схемку, начал пилить одну штуку, понял, что либ нихуя нет, а потом увидел того кудрявого симпатяшку и все заверте...
> И, судя по твоим ответам, в действительности дела обстоят именно так, как я увидел, разница лишь в том, что ты считаешь то нормальным, а я - нет.
У тебя в первом же посте фактические ошибки - про платформы, например.
> Протекающие by design абстракции, семантика с двойным дном
Примеры первого и определение второго в студию.
> не держать низлежащую платформу в уме, пусть этим занимается компилятор
Много ты браузерных аппов написал, не держа браузер в уме? inb4: ни одного, я не такой
> Разница между лиспами и жавой настолько же существенна, насколько между "алголоподобными" и хаскелем, поэтому любого.
Ну тогда озвучь, в чем состоит эта "идиоматика лиспа".
> они не настолько далеки, чтобы я не мог этого делать, особенно в сравнении с жавой.
Ну, вообще-то далеки. И при чем тут "в сравнении с жавой", если я говорю о том, что вообще в принципе не надо пиздеть о том, в чем не шаришь, ну?
> Хочешь сказать ...
Эм, тебя кто-то заставлял писать фабрики фасолин на кложе?
> Это слоган, а не идиоматика.
Определение в студию.
> Что ж ты не на жаве/жс тогда пишешь?
Эм, и на них тоже пишу разумеется. Странный вопрос.
А интерпретатор джавы тебе Аллах написать запрещает?
>>102734
https://www.grammarly.com/jobs/engineering/software-engineer-internal-tools?gh_jid=915433
> You will write a lot of Java code.
Проиграл легонечко. У них есть вакансии на эфшарп, тайпскрипт, джаву и датапитоны. Единственная снг-вакансия, где упоминается CL, выглядит как-то так:
> Extensive expertise in at least one functional programming language (e.g., Clojure, Common Lisp, Haskell, Scala, Erlang).
> Experience writing for the Java Virtual Machine.
То чувство, когда даже та компания, которую ты приводишь как пример кл в продакшне, ставит кложу перед кл в своей вакансии, лiл. Слава Украине!
Основная часть на CL, а вакансия - на Clojure. Переписывают небось?
Веб-параша у них на тайпскрипте с чем-то, Акелла опять промахнулся.
Так что, переписывают небось?))
Жопочтец, плз, вакансия на "любой ФП-язык", потому что имея представление о ФП CL начать использовать 0 проблем.
Я люблю ФП и Лисп, но CL мне не нужен, не нравится. Возможно он хорош как язык. Возможно там крутая экосистема. Но я этого не знаю, а как узнать непонятно, на нем никто не пишет, нет примеров. Лучше на Clojure писать. Ну или на рэкете.
Почему Пол Грэм не советует больше использовать CL, а советует Clojure? Наверное он что-то знает.
https://github.com/sbcl/sbcl
https://github.com/clojure/clojure
https://github.com/racket/racket
Щас бы по звёздочками судить...
Однажды я увидел "библиотеку", которая просто предоставляла настраиваем индикатор прогресса для айоси. У нее было 10k+ звёзд, говорит ли это что она хорошая? Она выполняла свои задачи, но в ней не было ничего особенного, любой вменяемый специалист сделал бы такую же за пару вечеров.
А, сори тогда. Мисфайр.
Количество звёзд говорит о количестве пользователей. Под IOS пишут сотни тысяч или даже миллионы, поэтому 10к звёзд. SBCL пользуется только несколько тысяч, поэтому всего 761 звезда. Мало пользователей -> плохая поддержка -> мало информации -> мало библиотек. Всё это можно определить по количеству звёзд.
Разница в сообществах. Это те, кто под айос пишут, привыкли ставить лойсы налево и направо, я, например, решительно не понимаю, какой в них смысл, особенно касаемо таких общеизвестных проектов как sbcl. Действительно сопереживаешь проекту - помоги кодом, а свой апатичный лойс можешь себе в анус засунуть.
Даже когда на сишке пишешь, тебе приходится взаимодействовать с инструментарием: компилировать, отлаживать, а на кложе - тем более. Нормальный процесс разработки на любом лиспе - это тесное общение с реплом.
Нифига ты олдфаг. Не думал, что встречу такого в треде. Тогда подскажи плз, стоит ли вкатываться в кложу или лучше выбрать другой яп. Сам пишу на жсе уже полгода, но он меня доебал. После работы пробую другие яп, но что то не могу выбрать. Пробовал питон, го, эликсир и жабу. Первые два вроде норм зашли, эликсир больше всех понравился, а давайте больше всех не понравилась. Правда я на каждом из них написал простенький круд. Думал может кложа зайдет.
>>104193
Наверное из за того что кложа на слуху.
>а давайте больше всех не понравилась
Т9? В таком случае, боюсь, кложу ждет та же участь, потому что она как хостед язык неразрывно связана с жабой.
Быстрее же в общем случае. Но это зависит от задачи, разумеется. Обычную вебню быстрее будет накидать на рельсах\джанге, просто потому что под них больше кода написано, хуяк-хуяк подключил и все работает. На кложе обычно пишут либо бэкенды, либо сервисы для рич клиент аппов.
>>104200
Таки попробуй кложескрипт, раз у тебя опыт есть. Глядишь и на работу его притащишь, профит же. Или ты именно укатиться из фронтенда хочешь? Или ты просто для общего развития ее учить хочешь? Конкретизируй запрос, короче.
>>104214
>что меня ждёт если я выберу кложу.
Кокаиновые дорожки и шлюхи в гамаках, очевидно же.
>>104177
>>104136
>>104297
Блядь, тебя обоссали уже, токсичный, так что уткнись, ок? Иди в другом месте толсти и воняй.
Ты чего нервный такой, что готов с пеной изо рта защищать предмет своего обожания? С кокаином перебрал?
Да-да, я всё понял. Извини, что мешаю втюхать новичку яву в овечьей шкуре и затянуть в свою секту. Не знал, что для тебя это так важно.
1. Главный. Знание Erlang позволит мне осилить Clojure быстрее, или это никак не связанные вещи?
2. Набор из Ruby, JS, Erlang(скоро), Clojure(в перспективе), Java(в перспективе) это норм? и не слишком ли я раскатал губу?
Ага, а ещё js на typescript и clojure на ocaml
>>110584>>105912
Ruby я зарабатываю сейчас, знание Java для карьеры будет не лишним в любом случае. Erlang- вроде и функциональщина т.е. возможность расширить кругозор, а там мало ли, может за это езе и платить будут. Clojure- раз уж уже знаю(буду знать) один функциональный язык, то наверное относительно несложно выучить еще один(вот не проебался ли я в этом моменте?)
Если кложу собираешься изучать исключительно как функциональный язык для расширения кругозора, то она, будучи гибридным языком, тебе ничего нового не откроет, рекомендую не тратить время и сразу переключиться на хаскель.
Не проебался ли я начав для расширения кругозора изучать Erlang? (хотя с ним есть робкая надежда на относительно высокооплачиваему работу)
Сам я нуб зеленый, но слышал, то мол кложа это относительно сложно и немейнстримово, типа хаскела, но для тех, кто хаскел считает попсовым... так ли это?
>Не проебался ли я начав для расширения кругозора изучать Erlang?
Однозначно нет, эрланг интересен применением модели акторов.
>>105977
Ну, на самом деле, и в хаскеле нет ничего сложного, есть лишь непривычность, которую на первых порах нужно преодолеть, и пугающие новичков своим названием монады, в которых на самом деле нет ничего страшного или сложного.
>мол кложа это относительно сложно и немейнстримово
А в кложе тем более ничего сложного, тот же руби но со скобками.
Ладно, перефразирую. Нужно что-то типа "я модный, стильный и крутой, я знаю Хаскел", но при этом наверняка же есть что-то относительно свежее и относительно хайповое для тех, кому хаскел излишне попсовый
В плане переспектив поиска работы Erlang актуален, или новомодный Elixir лучше?
И, чтобы уж не совсем оффтоп, то как обстоит с этим дело в этих ваших лиспо-кложах?
PureScript/Agda/Idris?
Какой-то ты слишком зеленый.
>>106049
Не на том фокусируешься, главное - твои умения и опыт, а язык - дело десятое, при необходимости всегда можно доосвоить.
>В плане переспектив поиска работы
Перспективы сильно зависят и от личных качеств: некоторые, знаешь, на меинстримных языках работы найти не могут, а некоторые умудряются на собственных языках за деньги программировать. Кто ищет - тот найдет .
На умении и опыте я фокусируюсь в том, что меня кормит. А хочется еще какой-то язык "чиста попонтоваться"
Тогда Эликсир, в нём и в базы лазать удобнее и синтаксического сахара завезли.
Вакансий на них нет, а все эти Иви с ТиВиЗаврами — стаи бомжей, которым видите ли похапе чем-то там не угодил.
Ты тредом ошибся
Так я и хочу начать с erlang а потом переползти на Elixir, или первый шаг в таком слчуае нахер не нужен?
Ты вкатись сначала, а потом глупые вопросы сами отпадут.
1. Да, знание одного любого функционального языка поможет освоить все другие функциональные языки.
2. Непонятно, в чем вопрос. Алсо непонятно, что ты подразумеваешь под "набором". Если у тебя на всех этих языках будет опыт в продакшне - то да, очень норм.
erlang и так мало кому нужен, а чем дальше тем нужен еще меньше, полумертвый
Так его ж ради отп тыкают.
И что это за язык такой - "lisp"?
ньюфаг
Вечером запилю.
> проебали
У меня схоронено — http://rgho.st/8cXrnsnpQ
Хотел так запостить, но там слово из спам-листа.
Свободное, блядь, общение.
Но с другой стороны, это повод её подчистить. А может и переписать даже.
Кажется, там ещё что-то про библиотеки было. Можно это добавить https://github.com/CodyReichert/awesome-cl
Среды разработки, думаю, можно повыкидывать нахуй, оставить емакспо одной. https://portacle.github.io/
Чем это Tcl - не лисп? Ммм?
А вот недоязычкам вроде hy, lfe, clojure действительно нечего делать в шапке.
диванный теоретик
Да не обращай внимания, это наш местный кложесектант, бурно реагирует на любое высказывание, касающееся его предмета поклонения.
У LFE, вообще, есть будущее или это просто хобби проект, который не расчитан на серьезное применение? Сейчас въезжаю в Elixir. Но думаю, может еще с LFE заодно познакомиться?
Какое вообще может быть будущее у проекта, цель которого - просто сменить надоевший синтаксис?
То же касается и элексира.
Скорее не приятнее, а привычнее. Рубистам.
В любом случае, сути это не меняет. Подобные косметические проекты, наверное, только в мире жс приживаются.
Листал нулевую, увидел, ответил. Под кроватью у себя жидорептилоидов поискать не забудь.
>>111336
>просто это не LISP.
Какие ваши доказательства? Ты точно знаешь, что такое лишпы? Я еще понимаю, если кто-то про тикль решит поспорить, но вот это выглядит как чистой воды троллинг или дилетанство.
>>111338
Если с практической точки зрения сравнивать elixir и lfe, то сравнение будет явно не в пользу последнего, увы.
>>111355
Есть мнение, что эликсир уже сейчас популярнее и более widespread, чем эрланг, но это не точно.
Если ты смузиёб - то да. А мне как хаскелозадроту erlang кажется в разы красивее.
Гхм, так я это слово как бы не использовал, привет.
Берешь и вкатываешься, порешать задачки что бы почувствовать синтаксис и способы его использования
>которого 3 года подряд дрочили ООП?
А чего ты боишься-то? Подкложурной явой тебя уже не напугать, а больши ничего страшного там и нет.
Если тебя действительно дрочили ООП, то ты уже должен знать его область применимости и слабые места, а потому тебе это будет только в плюс.
https://www.braveclojure.com/
+
http://www.4clojure.com/
Вопросы задавать тут:
http://clojurians.slack.com/
https://clojureverse.org/
https://groups.google.com/d/forum/clojure
Ну и на фриноде.
Из ООП-головного-мозга-специфичных подводных камней: не создавай рекорды на каждый чих. Для начала вообще забудь, что есть рекорды, и используй только плейн мапы. Забудь про объекты, все есть данные. Просто берешь и хуяришь мап. Алсо, используй namespaced keywords.
По части управления состоянием и DI - кури https://github.com/stuartsierra/component
По части ORM - кури https://www.hugsql.org/
По части интерфейсов - кури https://github.com/Day8/re-frame
Ничего другого нет. Если ещё этого не сделал, возьми преднастроенный spacemacs, с ним легче будет
Ну я пока читаю книгу по кложе и тут вроде есть готовый плагин для емакса.
Для IDEA есть мега охуительный Cursive, он прям 10 из 10, получше имакса потому что иде, но жрет дохуя. Из редакторов кроме имакса только в атома еще какая-то поддержка была, ну и куча кложура-онли недоредакторов.
Так что у тебя два стула.
>полет нормальный.
Тебя в книжке разве не учат разрабатывать с активным взаимодействием с реплом?
Если нет, то это явно хуевая для начала книжка.
Да и вообще, если игорировать одну из основных фишек лиспа, какой смысл вкатываться?
Cursive, nightcode, light table, тысячи их. Для любой иде и любого редактора (от эклипса до атома) есть годные плагины. Если у тебя нет цели разобраться с имаксом, то не трать время на то, чтобы разбираться с имаксом.
У него при сохранении файла весь код в нем подгружается в живой процесс. Плюс рядом собственно репл для ввода отдельных выражений.
Это в общем случае менее гибко\удобно, чем полноценная интерактивная среда, но тоже норм. Если его все устраивает - не вижу ни проблемы, ни причин доебываться с такими предъявами. Нам ведь тут не шашечки, а ехать.
>У него при сохранении файла весь код в нем подгружается в живой процесс.
Лейновский репл так умеет или это сублаймовский костыль?
Это пиздец неудобно. И кстати, думаешь, он об этом знает?
>Нам ведь тут не шашечки, а ехать.
Нет, именно шашечки, иначе бы он сейчас котлин ковырял или даже скалу.
Буду конечно!
Имакс лучший редактор евер, хотя там хватает своих заебов вроде костыльной работы модов. Но он лучший среди редакторов, нахуя их сравнивать с жирнейшими иде.
>Имакс лучший редактор евер
Дальше не читал. Емакс - не редактор, а среда программируемых буферов.
Whatever, мне очень важно знать твое мнение, не забудь википедию поправить.
Я в курсе, но я не делаю ничего особо серьезного поэтому мне норм.
https://stackoverflow.com/questions/7658981/how-to-reload-a-clojure-file-in-repl
>>112340
>сейчас котлин ковырял или даже скалу
Мээ, скала не зашла, котлин я и так дрочу на работе.
Ну так-то анон выше тебе все по делу сказал. Имакс - это не редактор, а оболочка. Как редактор (ванильный) имакс как раз моча говна, все нормальные пацаны ставят в имакс вим в качестве редактора, например.
Meh.
>>112336
Ну, фигвил так умеет, для ринга есть соответствующие лейн-плугины, ну и дженерик-версии тоже наверняка есть - но я не сильно интересовался, у меня другой воркфлоу.
Да и ничего "пиздец неудобного", вполне нормально можно пользоваться - особенно с тем же фигвилом. Но полноценная среда, конечно, лучше, - особенно с component.
Да спрашивай, хуль как не родной.
Кстати, тут вроде где-то хаскель-тред был с сикп-чуваком - никто не видел?
evil - годнота
Вы тут все по вечерам после работы что ли ебашите на лиспах? Откуда у вас столько рвения изучать его? Это же совершенно непрактично.
ну дык я о чем. в сикпе основы теор. кс.
>1488
Очевидный CLISP очевиден!
https://www.reddit.com/r/programming/comments/9lyp1/clisp_a_lisp_implementation_that_includes_a/
Мечтай.
Пугает зависимость от JVM. Еще не совсем понятна экосистема, есть же всякие nrepl и прочее, теперь еще какой то clojure cli появился, по кложур маловато исчерпывающей информации.
>>114967
Какая реализация? Правильно я понимаю, что для каждой реализации свои библиотеки, или как?
>>115106
Для меня его преимущества не очевидны. Ссылка на реддит показалась вообще ни о чем. Clisp компилируемый?
>Какая реализация?
Дефолтная в общелиспомире - SBCL.
>Правильно я понимаю, что для каждой реализации свои библиотеки, или как?
Нет. Такое только в схеме.
Нода же.
Начни с ПОДНЯТИЯ ФИГВИЛА ФИГВИЛ САМ НЕ ПОДНИМЕТСЯ КЛЖС В ЖС САМ НЕ СКОМПИЛИТСЯ КЛЖСБУИЛД САМ ПРОФИЛИ СЕБЕ НЕ НАПИШЕТ СОУРС МАПЫ САМИ СЕБЯ НЕ НАСТРОЯТ ЧТО ТАКОЕ АХ ДА РЕПЛ САМ К СЕБЕ НЕ ПОДКЛЮЧИТСЯ ПРОДЖЕКТ.КЛЖ САМ СЕБЯ НЕ НАПЕРДОЛИТ АХАХАХАХАХА с поднятия окружения и написания (методом вдумчивой копипасты) todo-mvc без сервера. Как разберешься с клжс - я бы порекомендовал таки потыкать сервер-сайд на обычной кложе (предполагаю, что ты не аутист и с джавадоками у тебя проблем нет), потому что это все-таки более мейнстримно, чем нода.
Ну а так - стандартно:
https://www.braveclojure.com/
http://www.4clojure.com/
https://clojure.org/
https://clojurescript.org/
http://clojurescriptkoans.com/
http://clojuredocs.org/
https://repl.it/site/languages/clojure
https://leiningen.org/
https://github.com/bhauman/lein-figwheel
http://clojurians.slack.com/
https://groups.google.com/forum/#!forum/clojure
#c1$+lojureANUSirc.freeno_*_dePUNCTUMn6-Cet
Из юай фреймворков начни с реагента, ибо документация неплохая. Но там, емнип, стандартный темплейт проекта довольно тупой. Если надо - могу скинуть project.clj и tree clj\cljs проекта.
Если что - задавай ответы :3
Я нашёл какие-то:
LispStick
http://www.iqool.de/lispstick.html
Home lisp
http://homelisp.ru
А вот в чём вопрос, что на них можно сделать? То есть, я смогу обучиться используя эти приложения хотя бы до уровня написания школьных программ?
>А где можно найти IDE для Common Lisp
Тут https://portacle.github.io/
>Я нашёл какие-то
В каких закоулках интернетов ты шарился? Второе, кстати, вообще не общелисп, а какой-то странный диалект от странного автора с непонятными целями.
Я как-то пробовал: да ну, он страшный какой-то, не настолько, конечно, как аллегро, но емакс все равно комфортнее.
>какой лисп учить первым новечку?
Думаю, с общелиспа лучше, т.к. он не такой игрушечный как схемарэкет, и не требует знания жавы/жс как всякие кложуры. И у него есть CEPL https://github.com/cbaggers/cepl/blob/master/README.md
>или лучше в какой-нибудь с\руст вкатиться сначала?
А вот с них точно не стоит: слишком уж многое нужно изучить, чтобы написать что-то сложнее хелловорлда.
Я запутался с диалектами Scheme/Racket. Есть Scheme, Racket, PLT Scheme, PLT Racket, и еще несколько диалектов. Зачем всё это и чем отличается друг от друга?
Scheme - название языка. PLT Racket - название конкретной реализации этого языка, которая раньше называлась PLT Scheme, а потом переименовалась в плт-ракетку. Все.
можешь привести пример разницы в реалезации языка пожалуйста? вообще не понимаю как это (
Язык - это набор правил, абстракция. Интерпретатор/компилятор - его реализация. В языке не прописано как интерпретатор должен читать и выполнять комманды, это решает разработчик интерпретатора. Соответственно, разные интерпретаторы языка Х могут быть написаны по разному, но все они должны выдавать одинаковый результат при чтении комманд для языка Х. То есть суть одна, но реализация может быть разной.
З.Ы. я сам никогда интерпретаторы не писал, так что могу быть не прав.
++i + ++i
Потому что clojure.core оче жирный, а жвм предназначена для долгоживущих (серверных) процессов. Подробнее: http://clojure-goes-fast.com/blog/clojures-slow-start/
Медленнее в 2-3 раза медленнее скалы, быстрее жруби, но зависит от задач. Подробнее: https://github.com/totakke/clj-perf-tips
>>121582
Я забыл((
>груви
Разве оно вообще живо? Не думаю, что между ними есть какая-то особая разница в производительности.
Вот имаджи а-ля сбцл завезли бы - было бы круто.
Хотя с другой стороны - никаких проблем с этим на самом деле нет. Весь этот "слоу стартап" упирается чисто в эстетические чувства девелоперов - ну типа НЕПРИЯТНО, что чистый репл в пустом открывается пару секунд, а не пару миллисекунд. Хотя на любом реальном проекте запуск репла и первичная компиляция делаются раз в день\неделю (и один хуй занимают достаточно дохуя времени, +- пару секунд погоды не сделают), а дальше - reloaded, вот это все. Для скриптов есть персистентные процессы, для мобилок - клжс+реакт нейтив. То есть реальной нужды, блин, в этом нет никакой - но все равно внутреннему хипстеру НЕПРИЯТНА.
> для мобилок - клжс+реакт нейтив
Да иди ты нахуй, пидор! Сначала веб в ебаную помойку превратили, что уже без 8 ядер и 16гб текст с картинкой не посмотришь, а теперь и к мобильным платформам свои поганые ручки тянете.
>быстро более-менее
>более-менее
Я бы сказал, слишком быстро. Даже сигарету полностью выкурить не успеваю, пока вводится набранный текст.
Эх, а всего каких-то пятнадцать лет назад о такой дружелюбности интерфейса и мечтать не могли. Ни гиф-смайлик по кадрам рассмотреть, ни передохнуть за время анимации ввода... не до таких изысков на 124х мегагерцовом арме было.
Поставил перед собой следующую задачу:
Есть матрица, нужно посчитать количество одинаковых элементов в определенном направлении(лево-право, тд) от
конкретной ячейки.
Матрица - вектор векторов.
Описал следующие переменные:
(def up-cell [0 -1])
(def right-cell [1 0]) .. и подобные для всех направлений
Хочу составить функцию следующего вида:
(defn count-out-consecutive
[matrix [x y] turn]
(...))
Я представляю как рекурсивно перемещаться по переданной матрице - к [x y] прибавлять turn на каждом рекурсивном вызове, но не могу понять как мне считать количество одинаковых элементов.
Как идея можно добавить отдельный набор аргументов с отдельным телом функции, который будет иметь счетчик как последний аргумент, но это жуткая копипаста. Будут два почти одинаковых тела.
Сейчас попробую это реализовать так, и вкину, чтобы было яснее о чем идет речь.
>Матрица - вектор векторов.
Flat вектор был бы эффективнее по идее.
>Описал следующие переменные:
Я бы сделал (def directions {:up [0 -1] ...})
>Будут два почти одинаковых тела.
Если честно, я нихуя не понял, о чем ты, но посмотри на эти функции:
http://clojuredocs.org/clojure.core/group-by
http://clojuredocs.org/clojure.core/frequencies
http://clojuredocs.org/clojure.core/subvec
Алсо, для начала попробуй написать функцию, которая просто принимает последовательность и возвращает мап из ее элементов в количество их вхождений: (f [:a :b :b :c :a :b]) => {:a 2, :b 3, :c 1}
Спойлер: используй reduce
На данный момент сделал так:
https://pastebin.com/aY8KmXKS
Выглядит слишком мудренно, прошу помощи в упрощении.
Сейчас гляну ссылки.
Дикты вещь прекрасная, я пока еще не привык к кложуру, просто забыл про них.
Алсо, прочел уже больше половины книжки про кложур, и все еще нихуя не знаю про ':name', знаю как юзать, знаю что можно использовать как операцию для получения валуе по ключу ака (:key dict), но что это не вдупляю, тип данных Keyword, гуглил:
'Returns a Keyword with the given namespace and name. Do not use :
in the keyword strings, it will be added automatically.'
нихуя не понял. Не мог бы ты пояснить?
Не совсем понял, "уникальная строка" подразумевает что оно ведет себя абсолютно так же как и строки, просто уникально?
Пойду в луп потещу что да как.
(clojure.string/replace :abc #"c" "d")
=> ":abd"
(keyword (clojure.string/replace :abc #"c" "d"))
=> ::abd
Ну ахуеть теперь.
В том смысле что они указывают на один объект.
https://github.com/clojure/clojure/blob/f572a60262852af68cdb561784a517143a5847cf/src/jvm/clojure/lang/Keyword.java
Разве обычные строки и так не указывают на одни и те же объекты в памяти? Делать иначе - не имеет смысла, особено учитывая что все структуры данных в clojure неизменяемые, если книжка не напиздела.
>Алсо, для начала попробуй написать функцию, которая просто принимает последовательность и возвращает мап из ее элементов в количество их вхождений
(reduce
#(assoc % %2 (inc (get % %2 0)))
{}
'(:a :b :a :a :c :d :e :f)
)
Хорошее упражнение. Мне кажется что я могу переписать на похожий лад мою функцию
из >>122883.
И все же мне интересно как наилучшим способом ее следовало бы реализовать без мапов редьюсов и тд с тем аргументами, которые я описал.
Джа ва
Строки то и в джаве иммутабельные, только не на один объект указывают, конечно в ранйтайме есть дедупликация, но расчитывать на это не стоит.
>прочел уже больше половины книжки про кложур
>просто забыл про них (дикты)
>нихуя не знаю про ':name'
>больше половины книжки про кложур
You're doing it wrong.
https://pastebin.com/aY8KmXKS
> )
> )
> )
Просто убей себя, пожалуйста.
>Не мог бы ты пояснить?
https://clojure.org/reference/data_structures
https://clojure.org/guides/faq#why_keywords
>>122895
>Ну ахуеть теперь.
(keyword "foo") => :foo
Если в качестве имени кейворда ты по какой-то неведомой причине, которую тебе стоит обсудить со своим психотерапевтом используешь строку, первым символом которой является двоеточие, то литеральное представление получившегося кейворда будет содержать два двоеточия.
>>122907
>% %2
Никогда так не пиши.
>'(:a :b :a :a :c :d :e :f)
За это отправляют в гулаг. В - векторы.
>)
Ну все, нигер, ты огребаешь, мать твою!
>наилучшим способом
>без мапов редьюсов
Взаимоисключающие параграфы.
>>122991
Ты создаешь анонимную функцию и тут же ее применяешь. Зачем?
>Ты создаешь анонимную функцию и тут же ее применяешь. Зачем?
Ну, типа, у меня есть матрица, и мне по моему кастомному алгоритму нужно по ней итерироваться и что-то считать, а так как все объекты неизменяемые, я увидел только данный подход.
Вообще не могу найти функцию, которая бы итерировалась по последовательности по алгоритму, который я ей опишу - это то, для чего я использовал анонимную функцию.
Сейчас я прочел про атомы, и имею представление как переписать код используя их.
Вот только нужно ли это? Какое в сообществе кложура отношение к атомам? В плане "если можно без них, лучше без них" или что-нибудь в этом роде? Или херачь как хочешь?
Вообще, вкиньте пеп8 для кложура, чтобы научиться скобочки ставить
https://ideone.com/yMdYUt
Мы вам перезвоним.
>4 386 816KB
Кстати, куда оно столько памяти жрет?
>Мы вам перезвоним.
Лол. Ну я же просто твой же код переписал, все по ТЗ :3 Если тебе надо, чтобы nil было валидным значением, можешь просто добавить в один из get-in какой-нибудь ::not-found третьим аргументом.
Алсо, я сейчас посмотрел на второй вариант и осознал, что какую-то хуйню там написал вот что бывает, когда в 5 утра джвачаешь вместо того, чтобы спать, на самом деле как-то так: http://vpaste.net/594Ez
>твой же код
Нет, не мой.
>все по ТЗ
Разве в ТЗ было сказано зацикливаться при определенных условиях?
>росто добавить в один из get-in какой-нибудь ::not-found
Какие-то грязные хаки уровня js, один охуеннее другого. В нормальных языках по ебалу получил бы за обращение к несуществующему элементу, чтобы не повадно было так говнокодить.
Ну так прочитай диалог, прежде чем в него влезать, ну. Открой пасту из указанного поста - я переписал его код, не изменяя алгоритма. По ТЗ матрица была без дырок.
>>123266
>Какие-то грязные хаки
Где, какие грязные хаки?
>по ебалу получил бы за обращение к несуществующему элементу
Ну так ты и получаешь по ебалу nil'ом. Option<t> называется, динамический его вариант. Если у тебя отсутствие значения должно быть валидным значением, то тебе нужно это предусмотреть в своем алгоритме. Делается это элементарно, одним словом.
В чем суть твоего бугурта?
>не изменяя алгоритма
А уход в бесконечный цикл ты, конечно, посчитал частью умысла, да?
Зато до скобок доебался.
>Ну так ты и получаешь по ебалу nil'ом.
Ножом в спину в самый неожиданный момент ты получаешь и увлекательную отладку бонусом. И повезет, если ошибка вслывет на стадии разработки.
>Option<t> называется, динамический его вариант.
Мудачеством это называется. Прекрасно понимаешь, что обосрался, но все равно пытаешься спорить, выдумывая идиотские оправдания.
>Option<t>
Ты упускаешь один ключевой момент. Всмотрись в свое выражение - что такого особенного делает Option с исходным множеством t, что его выгодно отличает от старого говнокодерского приема с возвратом 0xdeadbeef, 42 и прочих магических значений, превращающих код в бомбу замедленного действия?
>Зато до скобок доебался.
Логично доебываться в первую очередь до очевидных вещей, не?
>Ножом в спину в самый неожиданный момент
Божечки! Как страшно жить!
>Мудачеством это называется.
Maybe-типы - мудачество? Ээ, ок.
>приема с возвратом 0xdeadbeef, 42 и прочих магических значений
Ээ, ты о чем сейчас? Где ты такое увидел?
>>123639
>бесконечный список :not-found'ов делить пытаешься.
На ноль?
>>123643
Она приходит к нам сама.
Хм, насчет деления бесконечного списка уже я обосрался. Оказалось, в кложуре все наоборот: partition действует как group в хаскеле, а group - почти как partition.
Но тогда с какого хуя оно зацикливается? Похоже, правильно я предполагал, что это не достойная внимания параша уровня жс
Ты какой-то долбоеб. repeat возвращает seq, а матрица - это вектор векторов: https://repl.it/repls/ReflectingKnowledgeableKarakul
Раз ты не тот анон, который изначально задавал вопрос, то иди почитай документацию и отъебись от меня, пожалуйста.
То есть с векторов get может изымать значения, а со списков - нет? Неочевидненько. Но тогда какого хуя не сигнализирует об ошибке? Мне казалось, кложура сильнотипизированная.
Упс, не видел этот пост. Лучше бы и дальше не видел.
>Но тогда с какого хуя оно зацикливается?
Ну прочитай код же, блин. Алгоритм рассчитан на корректный вход, где coords входят в матрицу. Если по coords с самого начала ничего нет, то и partition не отделяет конечный список элементов от бесконечного списка пустоты, а подсчет длины бесконечного списка занимает чуть больше времени, чем мы можем себе позволить. Реализацию версии алгоритма, которая возвращает, например, 0 для выходящих за пределы матрицы координат оставим читателю в качестве несложного упражнения.
>>123759
>То есть с векторов get может изымать значения, а со списков - нет? Неочевидненько.
Вектор - ассоциативная структура, список - линейная. get, очевидно, работает с ассоциативными структурами (в частности - мапами, векторами и сетами). Для итерации последовательности в поисках энного элемента есть (очевидно названная) функция nth но если ты ее используешь, то ты скорее всего делаешь что-то не так. Почитай что-нибудь про алгоритмы и структуры данных в функциональных языках.
>Но тогда какого хуя не сигнализирует об ошибке?
Потому что ошибки нет. Стандартная библиотека придерживается принципа garbage in - garbage out.
>Мне казалось, кложура сильнотипизированная.
Почитай, что значит слово "сильнотипизированный".
уход в бесконечный цикл? Из разговора у меня создалось ощущение, что при определенных невалидных данных все может уйти в бесконечный цикл, или о чем речь?
Прямо над твоим постом описано же.
>Вектор - ассоциативная структура, список - линейная.
Они обе линейные, умник, блядь, и в одинаковой мере условно "ассоциативные".
>Почитай что-нибудь про алгоритмы и структуры данных в функциональных языках.
Да ты б сам что-нибудь почитал.
>Потому что ошибки нет.
Как это нет? Налицо ошибка типизации и непоследовательность проектирования языка, хотя на сайте утверждается обратное.
Ну ок, допустим, автор руководствовался не велением левой пятки, а той логикой, что типихация у нас слабая, значения неверного типа приводятся к пустой таблице. Но тут же наше предположение разбивается о поведение симметричной операции.
>Стандартная библиотека придерживается принципа garbage in - garbage out.
Какой чудесный язык, куда ни плюнь - везде не баг, а фича.
И чем обоснован такой принцип? Экономией на строках? Ненавистью автора к своим последователям, просто потому что скриптопарашники должны страдать?
Честно говоря, не ожидал, что кложура окажется такой говниной. Но больше поразила какая-то безропотность и упоротость сообщества, сравнимая, наверное, лишь с голанговым. На косяки языка у него только две реакции: оправдательная - но так и задумано автором! Будто это что-то меняет и говнина перестает быть таковой и обвинительная - сам виноват, что не знал, какая пятка чесалась у автора, когда он в очередной раз решил наплевать на предсказуемость кода.
>Почитай, что значит слово "сильнотипизированный".
Интереснее будет от тебя услышать. У вас, кложуристов, там, похоже, своя атмосфера и свое особенное мнение по поводу многих вещей.
Нет проверки на выход за пределы матрицы, а условием выхода является неравенство начальному элементу. Таким образом, если он совпадёт со значением, которое get возвращает в случае выхода за границы (nil по умолчанию), то ты получишь бесконечный цикл.
Такой исход более вероятен, чем может показаться. Ты можешь просто-напросто забыть о собственноручно созданных ограничениях или сам того не заметив притащить nil/::not-found/etc из других участков кода.
>при определенных невалидных данных
Не бывает невалидных данных, бывают невалидные алгоритмы.
https://clojure.org/reference/sequences
http://hypirion.com/musings/understanding-persistent-vector-pt-1
https://en.wikipedia.org/wiki/Strong_and_weak_typing
Попробуй потоньше, троллинг тупостью итт не заходит.
>троллинг тупостью итт не заходит
Ой ли? То у него игнорирование ошибок типизации - не баг, а фича, то вектор - не линейная структура данных, но ассоциативная, то Option<t> у него со множеством t совпадает, теперь ещё и абстрактное представление сд от её реализации не отличает и/или не читает свои же ссылки.
Да, признаю, ты меня затроллил. Можешь не утруждать себя очередными маневрами: выводы о языке я уже сделал (спасибо за правильные ключевые слова, по ним немало говна всплыло), а твоими охуительными историями уже по горло сыт.
Ты несешь какую-то хуйню. Либо прекращай щитпостить, либо начну репортить.
К счастью, там были только закрывающиеся скобки)))))))))))))))))))))))))))))))))))))))))))))))))
самый длинный в мире смайл
В этом плане она ничем не отличается от джавы, берешь и собираешь сторонними тулзами. Плюс есть упоминавшийся выше по треду Graal.
Если пишешь на кложурскрипте, то опять же, никаких принципиальных отличий от билда обычных node-webkit стандалонов нет.
Ну, вот первая страница в гугле:
https://spb.hh.ru/vacancy/19898706
https://spb.hh.ru/vacancy/20387112
https://www.superjob.ru/vakansii/clojure-29706215.html
https://www.linux.org.ru/forum/job/13837682
Я сомневаюсь, что тут в треде сидят представители каких-то компаний и кого-то хантят, а рекомендовать какого-то хуя с двощей никто никому не будет. По знакомствам все. Ходи по конфам, приглядывайся. Ну и сценарий "взяли миддлом на легаси, увидели, что крут, перевели на новый проект с интересным стеком" мне видится более вероятным.
spacemacs.
Хотел было вывалить тебе ls .emacs.d/elpa, но потом подумал, что это деанон.
(name :abc)
"abc"
>>122895
keyword это идентификатор, либо не надо им жонглировать, либо приводи к строке и обратно явно
>>123265
идеоматично, но единственное, что не нравится - появляется lazy-seq, единственная цель которой это быть count. я бы так https://ideone.com/E2xC5N
>>123759
> Неочевидненько
get - синоним константной сложности
https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java#L751L780 почему null/nil а не исключение - другой вопрос
кстати еще про это сложность https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f#why-clojure-doesnt-have-a-generic-insert-lookup-append-that-works-the-same-on-all-collections
Что же такого в brave clojure непонятного? Может у тебя с синтаксисом проблемы? Ну это лечится только решением задачек.
Ага, именно с синтаксисом проблемы. Не привычно после жса. Думаешь стоит задачки порешать?
Порешал немного задач 4clojure, застрял на функциях. Никак не могу вкурить синтаксис.
Что ты этим хотел сказать? Показать как хике бомбанул?
Перекатывать общий лиспотред или лучше запилить общий фп-тред?
вместо f(arg) пишешь (f arg). simple.
> Lisp in C's Clothing
https://www.crockford.com/javascript/javascript.html
Это копия, сохраненная 18 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.