Публикации по теме 'clojure'


Использование потока данных в Clojure для обработки огромного нового набора данных Google WikiReading
Вчера я изучал новый набор данных WikiReading , и мне удалось сократить его 208 ГБ несжатого JSON примерно до 50 ГБ, упростив структуру объектов - в основном удалив кучу денормализованных полей. Я использовал простой инструмент командной строки: jq . Но файлы все еще слишком велики, чтобы их можно было вставить в Clojure REPL на моем ноутбуке. Сегодня я хочу перейти от 18,8 миллионов троек (документ, свойство, значения) к карте из ~ 4,7 миллиона документов, каждый из которых связан с..

Социальные сети и гендерное предсказание
Часто, когда мы работаем с данными из социальных сетей, мы хотим знать о пользователях больше, чем то, что явно сообщает нам текст. То есть мы хотим вывести демографические переменные из текстовых данных. Одной из наиболее распространенных демографических переменных, которые следует хотеть, является пол. Исследователи социальных сетей смогли успешно различать пользователей социальных сетей мужчин и женщин, учитывая фрагменты текста приличного размера. Сегодня мы рассмотрим простую..

Макросы с Clojure
Одним из преимуществ Clojure является то, что это диалект шепелявого и гомоиконического. Уже есть много отличных сообщений в блогах о гомиконности, поэтому я не буду вдаваться в подробности. Однако основная идея заключается в том, что после синтаксического анализа clojure уже выглядит как AST из-за того, что сам код является структурой данных. Это помогает снизить некоторые сложности, возникающие при реализации метапрограммирования. Один отличный пример силы макросов можно найти в..

Хеш-карты Clojure: много места внизу
Недавно я выступал на BOBKonf 2017 в Берлине, Германия. Вместе с моим содокладчиком Питером Шаком я сообщил об улучшениях производительности структуры данных хеш-карты ClojureScript на основе статьи Майкла Штайндорфера и Юргена Винью . Питер реализовал описанный в статье алгоритм CHAMP в ClojureScript , что привело к повышению производительности в 2 раза при итерации и в 10–100 раз при проверке на равенство. Это означает, что проверка на равенство с использованием алгоритма CHAMP в..

На Лиспе за 15 минут
LISP прост и сложен, элегантен и специфичен; это прекрасное сочетание дальновидности и случайности. Согласны ли вы с этим утверждением или нет, историческое значение Лиспа неоспоримо. Несмотря на то, что Lisp сам по себе был красивым языком, он стал одной из самых влиятельных моделей компьютерного программирования. Он также породил множество широко распространенных концепций в отрасли сегодня, и, поскольку мейнстрим неуклонно переходит от стиля фон Неймана к λ-исчислению, мы..

Ленивый мир Clojure
Этот контент изначально был опубликован в моем личном блоге https://mrmorais.github.io . В контексте функционального программирования лень означает отсрочку выполнения кода или, другими словами: вы вычисляете (реализуете) код только тогда, когда вам нужен результат. Clojure не является ленивым языком (как Haskell), но он поддерживает ленивые вычисления последовательностей, а большинство основных функций использует lazy-seq под капотом, поэтому, если вы программируете на Clojure, вы..

Демистификация Clojure
Прошло больше месяца с тех пор, как я начал изучать Clojure, и если кто-то скажет вам, что это сдвиг в сознании, поверьте мне, это так! Моя цель в этом посте - помочь вам осуществить этот сдвиг и развить образ мышления, который поможет вам изучить Clojure (или, по крайней мере, то, что помогает мне). Две недели назад я начал работу над книгой Clojure для храбрых и правдивых, написанной Дэниелом Хиггинботэмом , которую мне рекомендовал мой наставник / руководитель. Что мне действительно..