現実世界と対話するアプリケーションでは、非決定論的関数の使用は避けられません。決定論的と非決定論的を明確に区別することが重要です。
Haskell には IO モナドがあります。これは、その外側のすべてが純粋であることがわかっているものを見て、不純なコンテキストを設定します。あなたが私に尋ねると、ユニットテストに関しては、コードのどの部分が最終的にテスト可能で、どの部分がそうでないかを知ることができます。
F# で 2 つを分離できるものは見つかりませんでした。それしか方法がないということですか?