LINUX.ORG.RU

Clojure 1.1

 , ,


0

0

Вышла новая версия языка программирования Clojure. Clojure является динамически типизируемым и компилируемым языком общего назначения для JVM и CLR. Изменений много. Среди них:

  • поддержка примитивных массивов (primitive array generators)
  • chunked-последовательности
  • futures, предназначенные для асинхронных вычислений
  • promises для обмена данными между тредами
  • pre- и post условия для функций
  • новое пространство имён

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

>>> Подробности

★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)

>поддержка примитивных массивов (primitive array generators)

Наконец то!

А когда указатели с арифметикой появятся)?

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

А когда указатели с арифметикой появятся)?

Когда школота/студентота их реализует.

l5k
()

ну примитивные массивы - не самое главное, они и до этого были, просто надо было явно типы данных писать....

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

>Что непонятного?

Знал бы, не спрашивал. Непонятного тут быть не может.

Но спасибо за ответ.

wyldrodney
()

у них там слишком замужено со спец. символами, имхо.

Rastafarra ★★★★
()

>компилируемым языком общего назначения для JVM и CLR

К стати рост этого момента во всех отраслях человеческой жизнедеятельности приводит к интересному эффекту - непереносимые программы на одном языке с одним компилятором. Прорыв!

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

>Почему непереносимые? Переносимые, настолько, насколько переносима ВМ.

Угу. Про то и речь. Теперь язык - 1, компилятор - 1, но актуальным становиться вопрос «под что написано».

- Под андроидом пойдет?
- Нет.
- Почему?
- Console.WriteLine вместо System.out.println потому что.

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

Тут уже «бананів нема». Была бы жаба до ума допиленая, как межязыковая платформа, Console.WriteLine было бы на порядок меньше. Хотя может моно...

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

> Теперь язык - 1, компилятор - 1, но актуальным становиться вопрос «под что написано».

Да ну, всегда так было. Си/GCC/Windows, например.

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

- Console.WriteLine вместо System.out.println потому что


В этом виноват Google со своим синдромом NIH.

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

> непереносимые программы на одном языке с одним компилятором

ынтерпрайзненько.

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

> Да ну, всегда так было. Си/GCC/Windows, например.

Ну как бы не совсем. Там фишка выражалась скорее в специфичных либах, а тут абсолютно все другое.

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

хорошая книжка про сам язык, как введение пойдет

ott ★★★★★
()

как же уже надоели школьники на ЛОРе....

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

А сборщик мусора есть?

ога

//Устала, лень гуглить.[/quote

//obvious fix

shty ★★★★★
()

Только вот новость боянистая, он 31го декабря прошлого года вышел.

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

>А что, в Jython есть software transactional memory? Это вообще-то главная фича Clojure.

Ты думаешь она реализхована с помощью либастрал? И то и то написано интероперабельно с жабой и может быть реализована на любом языке.

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

> Ты думаешь она реализхована с помощью либастрал? И то и то написано интероперабельно с жабой и может быть реализована на любом языке.

Это может быть реализовано не на любом языке, а ДЛЯ любого языка. На уровне компилятора или VM. Для Си это сделано (экспериментальный компилятор от Intel), но через жопу. Для Java пока никто не осилил. Для Python было бы сложновато, он слишком динамический. Единственный нормально доступный сейчас вариант - это Clojure.

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

Ну да, ну да, в Haskell оно тоже работает. Только вот сам Haskell как бы не нужен. А Java нужна. Из языков с STM к Java ближе всех Clojure...

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

>Для Java пока никто не осилил.

В гугле забанили?

r ★★★★★
()

Отличная штука. Жаль, работает только в JVM/CLR.

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

Неконтролируемые сайд-эффекты калечат STM. Поэтому не представляю, как можно нормально реализовать STM в жабе, в пистоне или в си.

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

Точки с запятой улучшают читаемость кода, явным образом визуально разделяя выражения. В сочетании с правильным форматированием отступов и короткими строками это работает хорошо.

А скобочки читаемости не улучшают, никакие отступы не помогут.

Да, кстати - от фигурных скобочек в си-подобных языках я тоже не в восторге, begin/end намного лучше. Но фигурных скобочек всё же намного меньше чем круглых в clojure. Как вы этот код вообще понимаете?!?

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

>Поэтому не представляю, как можно нормально реализовать STM в жабе, в пистоне или в си.

Способом которым предлагали жарить яичницу на питоне - соглашениями.

Ну или в жабе инструментингом который сведет попытки создавать неконтролируемые сайдэффекты к КакогоХренаТыДелаешьException.

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

Скобочки улучшают читаемость, явным образом визуально разделяя вычисляемые формы. В сочетании с правильным форматированием отступов и не слишком короткими строками это работает хорошо.

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

Как вы этот код вообще понимаете?!?

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

Это я к тому, что ваши замечательные бездоказательные доводы можно применить к любому элементу синтаксиса любого языка. А вообще, синтаксис - *всего лишь* дело привычки.

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

Я начинаю догадываться, кажется. Вы - тролль, да?

Конструкции вида "))))))" читаемости не улучшают, это настолько очевидно, что и обсуждать не стоит. С отступами получается ещё ужаснее:

) ) ) ) )

Без редактора с очень навороченной подсветкой блоков такой код читать бесполезно. С распечатки такой код читать невозможно. Что это за язык такой?!?

Да, насчёт точек с запятой - самый правильный подход к ним в языке ECMAscript, там они не обязательны на концах строк.

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

Я начинаю догадываться, кажется. Вы - тролль, да?

Конструкции вида "))))))" читаемости не улучшают, это настолько
очевидно, что и обсуждать не стоит. С отступами получается ещё ужаснее:

)
)
)
)
)

Без редактора с очень навороченной подсветкой блоков такой код читать
бесполезно. С распечатки такой код читать невозможно. Что это за язык
такой?!?

Да, насчёт точек с запятой - самый правильный подход к ним в языке
ECMAscript, там они не обязательны на концах строк.

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

Никакая привычка не поможет глазами матчить скобочки. Глаза этого делать не умеют принципиально.

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

> Способом которым предлагали жарить яичницу на питоне - соглашениями.

Угу. Только что-то мне кажется, что на практике будет так же, как с соглашением не ходить по нулевым указателям.

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