?

Log in

No account? Create an account

Стой под стрелой

Поступки и мысли, о которых могу вспомнить не краснея

Previous Entry Поделиться Пожаловаться Next Entry
Clojure@Echo 01 структуры данных, полиморфизм, интероп
усы2
tonsky
Следующая лекция про язык Clojure. В этот раз про структуры данных, полиморфизм (мультиметоды и протоколы) и интероп с Джавой. Лекция будет полезна всем начинающим изучать язык и интересующимся. Специально для ystrot продолжительность этой лекции всего 1 час.

Видео:


Слайды можно посмотреть отдельно на Спикердеке, а можно скачать pdf. Видео можно скачать на Vimeo.

Дополнительно хочу заметить вот что:

Обзор алгоритма работы персистентных векторов и словарей.

Trie — это несбалансированное дерево, в котором ветвление происходит по префиксам. В случае PersistentHashMap префиксами являются 5-битовые кусочки хэш-кода.

Reify отличается от proxy тем, что реализует интерфейсы с меньшим уровнем indirection (меньше динамизма, лучше производительность): http://stackoverflow.com/questions/5821892/why-should-i-use-reify-instead-of-proxy-in-clojure

Предыдущая лекция выложена тут.


  • 1
Саксесс-стори-то будет? :)

Не, ну за месяц — какая там саксесс-стори? Надо в большей перспективе смотреть. А то я расскажу сейчас — вот, всё сделали, все работает. А через полгода окажется, что это все геморрой страшный и разваливается.

Ну «код красивый» это уже, в известном смысле, успех :)

Не могу согласиться.

(Анонимно)
Что-то мне перехотелось писать на Кложе. Возьму ка я лучше Скалу. Тем более как сказал schored, производительность там на уровне java, даже если писать код без shared state.

Возьмите OCaml! Производительность там на уровне С и даже выше.

Возьмите Common Lisp! Производительность на уровне С, писать проще, быстрее и понятнее

(Анонимно)
Мне же хочется в обозримом будущем устроиться на работу. А у Scala, есть определенный стек "батареек", таких как Akka, Play framework и еще библиотек немного меньшего калибра.

(Анонимно)
Или написать DSL на Clojure, код которого бы разворачивался бы в код на OCaml.

(Анонимно)
Вот тут товарищ описывает как он лихо писал на Clojure и что это сэкономило ему пару недель - http://my-clojure.blogspot.com/2012/03/blog-post.html.

Это cool story, но в ней пугает только одно — она заканчивается на написании кода. Что потом с ним было, как работала команда, как поддерживали, как код масштабировался под нагрузку и под растущую кодебазу — этого нет. Двухнедельный проект можно на чем угодно написать, и получится отлично. Ну получится плюс-минус еще две недели, но это не принципиально совсем.

Спасибо!

стоит отметить, что proxy позволяет унаследовать и от существующего класса, в отличии от reify...

Ага, я это в лекции проговаривал, а тут дополнения вписал.

Можно я чуть поумничаю? :)

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

А ratio при операциях выполняет сокращение дробей, вычисляя НОД числителя и знаменателя по алгоритму Евклида. А нужны дроби для точного представления рациональных чисел в расчётах...

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

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

  • 1