10-й конкурс программирования ICFP опирался , в основном, на людей, использующих структуру данных веревки для эффективного решения. Это была большая хитрость, чтобы получить виртуальную машину, которая работала в разумные сроки.
Веревка отлично подходит, если есть много префиксов (очевидно, слово «предоплата» составлено ИТ-специалистами и не является подходящим словом!) И потенциально лучше для вставок; StringBuilders используют непрерывную память, поэтому эффективно работают только для добавления.
Следовательно, StringBuilder отлично подходит для построения строк путем добавления фрагментов - очень нормальный вариант использования. Поскольку разработчики должны делать это много, StringBuilders - очень распространенная технология.
Канаты отлично подходят для буферов редактирования, например структура данных, стоящая, скажем, за сильной стороной TextArea. Таким образом (ослабление Веревок, например связанный список строк, а не двоичное дерево) очень часто встречается в мире элементов управления пользовательского интерфейса, но это не часто предоставляется разработчикам и пользователям этих элементов управления.
Вам нужны действительно большие объемы данных и отток, чтобы оправдать себя - процессоры очень хороши в потоковых операциях, и если у вас есть ОЗУ, тогда просто realloc для префиксов работает приемлемо для обычных сценариев использования. Это соревнование, упомянутое сверху, было единственным разом, когда я видел, что это было необходимо.