Ответ 1
Я бы посмотрел, есть ли FC++, разработанный Яннисом Смарагдакисом, включая любые структуры данных. Конечно, этот проект больше, чем любой другой, касается поддержки функционального стиля на С++.
Кто-нибудь знает библиотеку структуры данных С++, обеспечивающую функционал (a.k.a. неизменяемый или "постоянный" в смысле FP) эквиваленты знакомых структур STL?
Под "функциональным" я подразумеваю, что сами объекты неизменяемы, а модификации этих объектов возвращают новые объекты, совместно использующие те же внутренние элементы, что и родительский объект.
В идеале такая библиотека будет напоминать STL и будет хорошо работать с Boost.Phoenix(caveat - я на самом деле не использовал Phoenix, но, насколько я могу судить, он предоставляет множество алгоритмов, но без структур данных, если только лениво -компьютерное изменение к существующей подсчетам данных - не так ли?)
Я бы посмотрел, есть ли FC++, разработанный Яннисом Смарагдакисом, включая любые структуры данных. Конечно, этот проект больше, чем любой другой, касается поддержки функционального стиля на С++.
Это скорее голова, чем подробный ответ, но Бартош Милевски, похоже, много работал над этим. См. Например:
http://bartoszmilewski.com/2013/11/13/functional-data-structures-in-c-lists/
Похоже, он реализовал множество алгоритмов из книги Окасики "Чисто функциональные структуры данных":
https://github.com/BartoszMilewski/Okasaki
N.B. Я еще не пробовал их, но они - первые устойчивые структуры данных на С++, которые я видел вне FС++.
Надеюсь, я скоро их попробую.