ここで、コード内で発生する可能性のある異常をログファイルに記録する方法を見つけようとしていました。最初に trace 関数に気付きましたが、 stdin にしか出力されないことがわかりました。
次に、 logger モジュールが表示されますが、これは IO モナド内で実行されるため、純度とすべてを妥協することで少し面倒です。次に、私の場合、タイプ IO () の a パラメータを使用して関数 a->b->b を作成すれば、すべて問題ないと考えました。
実際、コンパイラは何も問題を認識していませんでしたが、残念ながら、追加が実際に呼び出されることはなかったため、基本に戻っていました。私が実際に知りたいのは次のとおりです:a) ロギングに役立つ純粋な署名(unsafePerformIOなど)を持ちながらIOを実行する関数はありますかb)コンパイラに最初のパラメータを評価させる方法はありますか?実際に使用したことがないのに構築した機能は?
よろしくお願いします