новости сообщество форум вики

Recbird - управление записями

11/12/2009 11:14

Быть может вы читали блог Ярива Садана и знакомы с его библиотекой Recless, которая упрощает работу с записями(records). Главным ограничением этой библиотеки является то, что необходимо явно указывать тип записи. Например, следующий код не сработает:

get_name(Person) -> Person.name.

Приходится писать так:

get_name(Person = #person{}) -> Person.name.

Caoyuan решил исправить это упущение. Его библиотека подназванием recbird доступна здесь.

Библиотека работает так. Пробежавшись по AST, она для каждого поля записи генерирует набор getters и setters, после чего почти везеде можно спокойно писать что-то вроде:

R.a.b.c

и

R.a.b.c = Sth

Скорость отработки тоже неплохая. Если вызвать R.a.b = "yes" 1 000 000 раз, то чистая версия на Эрланге занимает 300ms против 310ms при помощи recbird. На 10 000 000 миллионах вызовах recbird хуже Эрланга на 150%

Вся информация в блоге: http://blogtrader.net/page/dcaoyuan?entry=recbird_an_erlang_dynamic_record


 
 
 
 

так же

Ссылки

сообщество

http://groups.google.com/group/erlang-russian/feed/rss_v2_0_msgs.xml