Pull to refresh
66
0
Andrei Zhlobich @anjensan

Human

Send message

Такой исключительный Go

Reading time12 min
Views11K

Недавно были опубликованы черновики дизайна новой обработки ошибок в Go 2. Очень радует, что язык не стоит на одном месте — он развивается и c каждым годом хорошеет как на дрожжах.


Только вот пока Go 2 лишь виднеется на горизонте, а ждать уж очень тягостно и грустно. Посему берем дело в свои руки. Немножко кодогенерации, чуть работы с ast, и легким движением руки паники превращаются, превращаются паники… в элегантные исключения!


Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments43

Clojure — трансдьюсеры, редьюсеры и прочая муть

Reading time14 min
Views23K
В последнее время определенную известность получили transducers — новая фишка из еще не вышедшей Clojure 1.7. На момент написания статьи актуальна Сlojure 1.7-alpha5, но уже успело появиться изрядное количество портов трансдьюсеров на разнообразные языки: Python, Ruby, JavaScript, PHP, Java, C++, Lua, Erlang. И… это немного обескураживает. Ведь довольно давно (еще в Clojure 1.5) добавили библиотеку reducers.Так вот про редьюсеры никто особо не говорил,никуда ничего не портировал, хотя, вроде как, делают они схожие вещи… Или нет?

Давайте разберемся, для чего нам в Clojure понадобились все эти reducers & transducers (они нам правда нужны?), как они работают, как их использовать… И выясним наконец, не пора ли выкидывать reducers на свалку.
Сворачиваемся...
Total votes 47: ↑42 and ↓5+37
Comments10

Пишем свой DSL на Clojure для работы с БД

Reading time18 min
Views10K

Давайте напишем Clojure-библиотеку для работы с реляционными БД. Заодно потренируемся в написании макросов, попробуем использовать протоколы и мультиметоды. Ведь нету лучшего способа узнать язык, нежели что-то на нем написать. Ну… или почитать, как написал кто-то другой.
Много кода на Clojure
Total votes 20: ↑19 and ↓1+18
Comments4

Почему стоит изучить Clojure?

Reading time17 min
Views149K

Что такое хороший язык программирования? Какими качествами и характеристиками он должен обладать? Ответ дать сложно. Вот одно из возможных определений: хороший ЯП должен хорошо решать возложенные на него задачи. Ведь ЯП — лишь инструмент в руках программиста. А инструмент обязан помогать нам в работе. В конце концов, это же и есть причина его создания. Разные ЯП стараются решать разные проблемы (с переменным успехом). Цель, которая ставилась при проектировании Clojure — сделать написанные нами программы простыми. И, как следствие, ускорить их создание, тестирование. А главное, уменьшить время на их понимание, изменение и сопровождение.
Читать дальше →
Total votes 112: ↑108 and ↓4+104
Comments55

Интегрируем clojure-библиотеку в java-приложение

Reading time5 min
Views7.3K
Язык Clojure отличается очень тесной интеграцией с Java. Прямое использование Java-библиотеки в приложении на Clojure — дело совершенно простое и обыденное. Обратная интеграция несколько сложнее. В этой статье указаны некоторые варианты интеграции кода на Clojure в Java-приложение.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

Clojure — последовательности (sequences)

Reading time7 min
Views7.7K
Clojure является диалектом Lisp, поэтому совершенно не удивительно, что работе со списками отводится ключевое место в языке. Правда, в отличии от традиционных диалектов (CL или Scheme), вместо классических двухслотовых списков в Clojure используется абстракция Sequence — «логический список». Фактически, это интерфейс, предоставляющий методы для работы с неизменяемыми, ленивыми и, возможно, бесконечными последовательностями. Данная статья описывает внутреннее устройство этих сущностей.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments2

Information

Rating
Does not participate
Location
Warszawa, Польша
Date of birth
Registered
Activity