hintパッケージより。hintはGHC APIのラッパーで簡単に動的にスクリプトを読めるので、プラグインとかはこれで作れそう。
% runghc
module Main where
import Language.Haskell.Interpreter
main :: IO ()
main = do
res <- runInterpreter withPlugins
putStrLn . show $ res
return ()
withPlugins :: InterpreterT IO ()
withPlugins = do
setImports ["Prelude", "Data.List"]
evaled <- interpret "intersperse ',' \"ABCDEF\"" (as :: String)
(lift . putStrLn) evaled
return ()
A,B,C,D,E,F
Right ()