Каков наиболее элегантный способ работы с внешней библиотекой с внутренним состоянием с помощью языка программирования функций?

В настоящее время я играю с разработкой Scala, но мне нужно интегрироваться с такими библиотеками, как box2d, для обработки физики. Проблема в том, что это требует зависимости от внешней библиотеки, которая управляет своим собственным состоянием. Вы отслеживаете тела, которые попадаете в мир box2d. Подводя итог аспектам игры:

  • Box2d управляет состоянием в мире и изменяет их после каждого тика / шага
  • Вы создаете (используя FP) тела, которые передаются в этот мир
  • Box2d изменяет состояние этих тел внутренне
  • Чтобы отслеживать объекты, которые вы держите ссылку на них, вокруг
  • Вы, скорее всего, захотите использовать информацию в телах для рендеринга вашего кода, поэтому я бы предположил, что единственный способ отслеживать Эта информация предназначена для отслеживания всех ссылок в изменяемой коллекции. Он должен пережить все кадры.

Итак, мой вопрос:

Как вы можете элегантно отслеживать эти ссылки (для функционального программирования) и как минимизировать их влияние на чистоту остальной части вашего кода?

Разное. вроде монады состояний мне здесь не помогут

11
задан Don Stewart 22 April 2011 в 21:23
поделиться