Подтвердить что ты не робот

Функциональные структуры данных в С++

Кто-нибудь знает библиотеку структуры данных С++, обеспечивающую функционал (a.k.a. неизменяемый или "постоянный" в смысле FP) эквиваленты знакомых структур STL?

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

В идеале такая библиотека будет напоминать STL и будет хорошо работать с Boost.Phoenix(caveat - я на самом деле не использовал Phoenix, но, насколько я могу судить, он предоставляет множество алгоритмов, но без структур данных, если только лениво -компьютерное изменение к существующей подсчетам данных - не так ли?)

4b9b3361

Ответ 1

Я бы посмотрел, есть ли FC++, разработанный Яннисом Смарагдакисом, включая любые структуры данных. Конечно, этот проект больше, чем любой другой, касается поддержки функционального стиля на С++.

Ответ 2

Это скорее голова, чем подробный ответ, но Бартош Милевски, похоже, много работал над этим. См. Например:

http://bartoszmilewski.com/2013/11/13/functional-data-structures-in-c-lists/

Похоже, он реализовал множество алгоритмов из книги Окасики "Чисто функциональные структуры данных":

https://github.com/BartoszMilewski/Okasaki

N.B. Я еще не пробовал их, но они - первые устойчивые структуры данных на С++, которые я видел вне FС++.

Надеюсь, я скоро их попробую.