Тут намедни читал про ropes - структура данных, в которой строка хранится как бинарное дерево, получается, что почти все операции работают эффективнее чем с традиционным представлением в виде массива. Единственное - индексация O(ln N), но по-моему индексация используется чаще всего для foreach, а foreach как раз O(N). В общем очень интересно, но почему оно так редко используется? O(1) (или O(ln N) в случае сбалансированного дерева) конкатенация это же круто :) Или я чего то не понимаю?