LINUX.ORG.RU

Clojure 1.9

 , hickey,


1

5

Clojure 1.9 наконец-то вышел.

Версия 1.9 содержит две главные новые возможности — интеграция с spec и cli-утилиты.

spec — это библиотека для описания структур данных и функций с поддержкой валидации, деструктурирования, документации, отчета об ошибках, генерации тестовых данных и обобщенной генерации тестов.

spec интегрируется в Clojure через две новые библиотеки:

Такая модуляризация облегчает обновление spec независимо от релиз-цикла Clojure.

Инструменты командной строки предоставляют быструю и лёгкую установку, Clojure REPL (!!!), использование Maven и локальных зависимостей, функциональный API для управления classpath.

Полный список изменений можно найти тут.

>>> Оригинал новости

★★★

Проверено: tailgunner ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Копипаста с матами эмоциональная, конечно. Но что то рациональное в этом есть. Меня тоже бесит эта синтаксическая вакханалия со списками и словарями. Но ею болеют все современные языки...

AVL2 ★★★★★
()
Ответ на: комментарий от linuhs_user

Слишком мало буковок используется

drange Double/POSITIVE_INFINITY ::s/invalid [{:pred '(clojure.core/fn [%] (clojure.core/not (Double/isInfinite %))), :val Double/POSITIVE_INFINITY}]

Правда мало?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Я так понимаю, Clojure пошла по стопам Python к поддержке опциональной типизации?

В python разве планируется такое? Ты с php не путаешь?

ertgblasd ★★
()

А clojure подходит для разработки приложений под ведро? Вроде были туториалы, но как там дело обстоит на самом деле?

anonymous
()

Смысл CLI тулз так и не уловил. Есть boot, есть leiningen. Зачем плодить сущности?

Deleted
()

- Псс, парень, не хочешь немного новостей? Вот clojure новый вышел
- А что это?
- Не хочешь читать - отойти, не привлекай внимание

router ★★★★★
()
Ответ на: комментарий от ertgblasd

Мда, прямо таки провал идеи динамической типизации.

Это хорошо, что приходит осознание.

P.S. в качестве троллинга - якобы динамическая типизация - это статическая типизация, в которой есть только один тип: многабукав

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Стопы Python вывернуты в обратном направлении.

t184256 ★★★★★
()
Ответ на: комментарий от tailgunner
And this is precisely what is wrong with dynamically typed languages: rather than affording the freedom to ignore types, they instead impose the bondage of restricting attention to a single type!
...
languages that admit both modes of reasoning enable you and liberate you from the tyranny of a single type.

Ад.

pru-mike ★★
()

Clojure REPL (!!!)

А может кто-то пояснить, откуда столько эмоций? Старый очеловечили или очередной новый завезли?

t184256 ★★★★★
()
Ответ на: комментарий от ertgblasd

То js статику прикрутят, то php то питону

Хз, что там в жабоскрипте, но в пыхе тебя этим пользоваться никто не заставляет же.

WereFox ★☆
()
Ответ на: комментарий от tailgunner

И чо? Разницу между синтаксисом самого языка и спеки понятна? Или надо специально разъяснять?

anonymous
()
Ответ на: комментарий от tailgunner

так о чем мы говорим, о синтаксисе кложи или о дсл одной из его библиотек?

Синтаксис кложи прост и изумительно продуман даже по сравнению с лишпом. Или есть что сказать против?

anonymous
()
Ответ на: комментарий от anonymous

так о чем мы говорим, о синтаксисе кложи или о дсл одной из его библиотек?

Я повторю ссылку: https://clojure.org/guides/weird_characters

Надеюсь, ты можешь понять, о чем там говориться.

Синтаксис кложи прост и изумительно продуман даже по сравнению с лишпом

Да, Lisp задал высокий барьер.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Синтаксис замыкания просто ужасен. Он столь же мутный, как в лисп и столь же безумный, как в питоне.

AVL2 ★★★★★
()
Ответ на: комментарий от anonymous

Да в этом вся мутность и состоит. Тут буковку подменили, там подставили. Не язык, а одна сплошная подстава...

AVL2 ★★★★★
()

чтоо сделали с помощью этого языка программирования?

anonymous
()
Ответ на: комментарий от slaykovsky

По ссылке из новости написано, что этого было недостаточно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Проблема в том, что осознание приходит только к людям, способным на создание ЯП. Хомячье после курсеры продолжает складывать числа со строками и оргазмировать от этого.

leave ★★★★★
()
Ответ на: комментарий от dnb

Вот поэтому все там в бездуховном западе - реперы! Половина слов одной буквой отличается...

AVL2 ★★★★★
()
Ответ на: комментарий от tailgunner

Это хорошо, что приходит осознание

Судя по std::any и dynamic в C#, процесс этот не односторонний.

anonymous
()
Ответ на: комментарий от provaton

в Java можно сложить строку с числом:

String s = "Number = " + 10;
этот код валидный и скомпилируется. Самое интересно, следующий код уже не скомпилируется:
String s = 10 + " = Number";

Int64 ★★★
()
Последнее исправление: Int64 (всего исправлений: 1)
Ответ на: комментарий от Int64

в Java можно сложить строку с числом:

String s = «Number = » + 10;

Ты не различаешь сложение и конкатенацию?

tailgunner ★★★★★
()
Ответ на: комментарий от Int64

в Java можно сложить строку с числом:

String s = "Number = " + 10;

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

Это называется «implicit cast». Здесь число приводится к строке и выполняется конкатенация (поскольку левый операнд является строкой). В общем случае любой объект можно привести к строке, поэтому такое поведение валидно (хотя и спорно).

Самое интересно, следующий код уже не скомпилируется:

String s = 10 + " = Number";

А здесь уже используется операция сложения (левый операнд — число), но очевидно, что к числу можно привести далеко не любой объект, поэтому автоматически кастовать правый операнд к числу недопустимо.

Virtuos86 ★★★★★
()
Ответ на: комментарий от AVL2

Тут буковку подменили, там подставили

А кто виноват, что ты буквы путаешь? Плохо видишь - купи себе очки побольше.

anonymous
()
Ответ на: комментарий от tailgunner

программа падает от неудачной попытки сложить число и строку

Васян, ну зачем так тупить? Специально ведь проверила, не поленилась.

core> (+ "строка" 12)

java.lang.String cannot be cast to java.lang.Number

Это ошибка компилятора? Не?

anonymous
()
Ответ на: комментарий от dzidzitop

Скобочки вычитывать не нужно, emacs или что-то другое сделают это за тебя. А вообще очень хорошая практика - писать очень короткие фунции, не более 5 строк, кложа ведь функциональный язык.

anonymous
()
Ответ на: комментарий от Virtuos86

Это называется «implicit cast». Здесь число приводится к строке и выполняется конкатенация (поскольку левый операнд является строкой). В общем случае любой объект можно привести к строке, поэтому такое поведение валидно (хотя и спорно).

нет, вызывается StringBuilder.append(int)

O02eg ★★★★★
()

Clojure REPL (!!!)

Пока наши корабли бороздят просторы вселенной…

awesomelackware
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.