Dec. 18th, 2007

metaclass: (Default)
Позитивная идея описана в статье про Haskell - вместо того, чтобы заниматься конкатенацией строк, каждый раз выделяя под новую строку память (неявно, как в Дельфях, или явно собирая в билдерах и буферах, как в Java/.NET), строка представляется как список символов или строк, возвращаемый последовательной композицией функций. При том, что вычисления ленивые - реальное обращение к функции происходит тогда, когда ее значение заинтересовало кого-то неленивого :).

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

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 10th, 2025 04:49 am
Powered by Dreamwidth Studios