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