Nach dem Prinzip der Trennung von Befehlen und Abfragen sowie dem Denken in Daten und DDD mit Clojure- Präsentationen sollten Nebenwirkungen (die die Welt verändern) von Berechnungen und Entscheidungen getrennt werden, damit beide Teile leichter zu verstehen und zu testen sind.
Dies lässt eine unbeantwortete Frage offen: Wo sollten wir relativ zur Grenze "die Welt fragen" setzen? Einerseits ist das Anfordern von Daten von externen Systemen (wie Datenbanken, APIs von Extental Services usw.) nicht referenziell transparent und sollte daher nicht mit reinem Rechen- und Entscheidungscode zusammenpassen. Auf der anderen Seite ist es problematisch oder unmöglich, sie vom rechnerischen Teil zu trennen und als Argument zu übergeben, da wir möglicherweise nicht im Voraus wissen, welche Daten wir möglicherweise anfordern müssen.