LINUX.ORG.RU

Clojure 1.8

 , ,


1

4

Свершилось! Под бурные аплодисменты состоялся новый релиз этого замечательного языка.

Основные новшества:

  • Функции index-of, last-index-of, starts-with?, ends-with? добавлены в clojure.string.
  • Сокет-сервер с REPL
    -Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}"
    
    $ telnet 127.0.0.1 5555
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    user=> (println "hello")
    hello
    
  • Direct linking

>>> Большое количество улучшений и исправлений

>>> А ещё у них обновился сайт :-)

★★★★★

Проверено: Klymedy ()

Спасибо за новость. Опробовал ихний TryClojure. Интересная вещь.

Odalist ★★★★ ()

А вот и первая ошибка вылезла

> (defn square 10)
java.lang.IllegalArgumentException: Don't know how to create ISeq from: java.lang.Long

Odalist ★★★★ ()

Похоже это единственный достойный вариант работать с jvm. А если наличие jvm не критично, общелисп и ракета все же предпочтительнее.

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

Чет не верю что у них нет тестов на такой простой кейс.

loz ★★★★★ ()

Распиареный недолисп. Хотя жрут охотно.

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

ну напомните тогда уж, чего там не хватает до лиспа

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

Уже миллион раз обсасывалось. Просто не называй эту хрень лиспом. Есть схема, и вот ещё клоужа. Разные язычки. Можно использовать.

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

Просто не называй эту хрень лиспом

но почему? и почему хрень?

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

Всё правильно, после названия функции должен идти список аргументов.
Обычно это вектор, он реализует ISeq, а у тебя там лонг.

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

Лисп это давно уже семейство, и к радости или сожалению, кложура в него входит.

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

Ага, как и с++ и с в семействе алгола, только совсем разные языки. К тому же даже лисп не упомянут в названии языка, то есть от каноничного лиспа они отказались — такой недоскала со скобочками от лиспа на жвм онли. Жабадрочерам как раз в тему.

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

то есть от каноничного лиспа они отказались

А «каноничный лисп» - это кто?

risenshnobel ★★★ ()

Сокет-сервер с REPL

Если переопределить функцию то требуется перекомпилировать функции, которые ее используют?

jollheef ★★★ ()

Эх, а у меня еще предыдущая версия не запустилась...

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

на жвм онли

WUT?!
как минимум еще дотнет и жс

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

почему хрень?

public interface IFn extends Callable, Runnable{

public Object invoke() ;

public Object invoke(Object arg1) ;

public Object invoke(Object arg1, Object arg2) ;

public Object invoke(Object arg1, Object arg2, Object arg3) ;

public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4) ;

public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) ;

public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6) ;

public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7)
		;
...

Продолжи цепочку.

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

Опробовал ихний

Правильно будет «опробывал».

anonymous ()

И снова минорная хипстота. Что стало с уютненьким?!?

anonymous ()

Под бурные аплодисменты

Klymedy, а что в след. раз будет? Под крики и стоны?

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

На Lisp бочку катить не надо, ибо отец наш Lisp можно сказать родитель многих идей в CS.

Pavki ()

Свершилось!

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

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

ну напомните тогда уж, чего там не хватает до лиспа

отсутствие вакансий и реальной сферы применения

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

Продолжи цепочку.

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

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

Я не спрашивал «почему так?», я говорил «почему хрень». Если платформа позволяет писать под нее одну лишь хрень, это не значит, что хрень автоматически перестает быть хренью.

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

Всё правильно, после названия функции должен идти список аргументов.
Обычно это вектор, он реализует ISeq, а у тебя там лонг.

Спасибо. Буду пробовать дальше.

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

с++ и с в семействе алгола

С/C++ к алголу не имеют никакого отношения, даже близко не лежали.

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

С/C++

Конечно не имеет, так как не существует такого языка.

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

Возможно, вы имели в виду: (def square 10)

Спасибо. Да, я это имел в виду. Теперь все нормально.

> next
> (def square 10)
#'sandbox10503/square
>

Odalist ★★★★ ()
Последнее исправление: Odalist (всего исправлений: 2)

Clojure на самом Clojure уже написали?

.. 60% Java, расходимся поцоны

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

Под крики и стоны?

Это ко всяким C++-сирам и Go-внячерам :-)

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

А «каноничный лисп» - это кто?

Это тот, в котором для структурирования кода используются только списки.

no-such-file ★★★★★ ()

Мам, а почему в треде не пахнет борщом?

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

Мам, а почему в треде не пахнет борщом?

Борщевикам неинтересен реальноиспользуемый язык

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

Продолжи цепочку.

Это оптимизация производительности, в жабе есть varargs только его использование ведет к порождению массива, там в конце наверняка он и прописан. Условности жабы, при чем тут clojure?

anonymous ()

Мощные новшества. В чем преимущества сего птичьего языка над Scala ?

qwerky ()

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

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

Если переопределить функцию то требуется перекомпилировать функции, которые ее используют?

Нет, сами подхватят, без перекомпиляции. Там есть дополнительный слой индирекции между именем функции и реальной функцией.

unlog1c ★★★ ()

Хороший язык, используем в продакшене как и Лисп. Оба имеют свое применение.

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

х86 опкоды вообще хрень нечитаемая, значит абсолютно все языки, которые компилируются/транслируются в x86 - хрень

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

«уютненький»? ты о чем?

по теме, лисп с собственным блекджеком и ... ну вы понели) На самом деле интересно только одно написание сервер и клиент конда в одном ключе.

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

Забейте уже Скалу в дупу. Ну не взлетела, ну лано. Есть масса языков более интересных, которые скорее всего тоже не взлетят) Це: Го, Раст, Dи. На мой взгляд это всё гораздо интереснее чем Скала, у них хотя бы еще есть шанс, шо взлетит)

anonymous ()

чё это вообще такое и нафига нужно это «ненужно» ?

anonymous ()

Здравствуйте!

Знание - сила. Ф. Бэкон.

anonymous ()

О да, ждала релиза. Надо обновиться. Спасиб за новость =)

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

Clojure и scheme - это lisp-1, а CL - lisp-2. Lisp-1 гораздо удобнее для функционального программирования.

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

Это может быть по причине производительности. Всё таки Clojure динамический язык, а базовые абстракции должны иметь максимальную производительность.

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