私は、実行する文字列からHaskell関数をロードする方法を探しています。私は手前の型を知っていますが、関数の内容は知らないのです。動的なhaskellモジュールをロードする
理想的には、ソリューションは迅速でIOで実行する必要はありません。
私はヒント(Language.Haskell.Interpreter)を見てきましたが、請求書に適合しません(評価はshow、モジュールはファイルでなければなりません)。
ご協力いただければ幸いです。
私は、実行する文字列からHaskell関数をロードする方法を探しています。私は手前の型を知っていますが、関数の内容は知らないのです。動的なhaskellモジュールをロードする
理想的には、ソリューションは迅速でIOで実行する必要はありません。
私はヒント(Language.Haskell.Interpreter)を見てきましたが、請求書に適合しません(評価はshow、モジュールはファイルでなければなりません)。
ご協力いただければ幸いです。
抽象的な答えはあなただけ(あなたがそれをしている間、おそらくShow)(->)
Read
のインスタンスを作る必要があるということです
。コードを解釈するのは小さな仕事ではありません。
単純な関数を扱う場合は、それらを表す代数的データ型を作成することをお勧めします。
data Fun = Add | Subtract | Multiply deriving (Eq, Show, Read)
runFun Add = (+)
runFun Subtract = (-)
runFun Multiply = (*)
*Main> runFun (read "Add") 2 3
5
*Main> runFun (read "Multiply") 2 3
6
*Main> runFun (read "Subtract") 2 3
-1
私はhttp://stackoverflow.com/questions/712696/is-there-a-quick-starting-haskell-interpreter-suitable-for-scriptingを読んでいるが、unhelpedました – amccausl
静的で安全性を重視する言語の中で、「eval」を求めていますか?どのように楽しく皮肉な... – delnan
必ずしもそうではありません。純度とサンドボックスを構築する言語は、動的コンパイルの偉大な言語のように思えます。 – amccausl