3

これは、unsafePerformIO を使用する正当な理由はありますか?に対するフォローアップの質問です。

だから私たちはそれを知っています

p_sin(double *p) { return sin(*p); }

は安全ではないため、 では使用できませんunsafePerformIO

しかし、p_sin関数は依然として数学関数であり、安全でない方法で実装されたという事実は実装の詳細です。たとえば、一時メモリの割り当てを伴うという理由だけで、行列の乗算を IO に含めたくありません。

この関数を安全な方法でラップするにはどうすればよいでしょうか? 自分でロックしたり、メモリを割り当てたりする必要がありますか? これに対処するためのガイド/チュートリアルはありますか?

4

1 に答える 1