7

TH について学ぼうとしているときIOに、コンパイル中に任意のアクションが許可されていることがわかりました (テンプレート Haskell の何が悪いのか?を参照してください)。これは私にはかなり危険に思えます。何故ですか?一部のタスクで本当に必要ですか?それとも、「すべての不純なものをIO罪のビンに投げ込む」という、その設計の単純化にすぎないのでしょうか?

更新:恣意的な操作を禁止する TH の安全なサブセットを作成する取り組みがあるかどうかも興味がありますIO

4

1 に答える 1

12

テンプレートHaskellの主な使用目的の1つは、ファイルからの大きなテキスト値やビルド情報(バージョン、時間、環境)など、外部リソースから定数を組み込むことです。明らかに、それを行うにはシステムアクセスが必要です。

次に、このための安全なAPIを構築しようとするか、任意のIOを許可することになります。後者は、それがいかに単純であり、安全なAPIを間違えることがいかに簡単であるかから選択されました。

于 2012-12-09T08:36:50.433 に答える