我正在努力转换正确的字符串。我有一个名为 getEval 的方法,它计算一个数学表达式(基本上是一个字符串),我得到它如下:
*Main> getEval "3+6"
Right "9"
getEval 的类型是
*Main> :t getEval "3+6"
getEval "3+6"
:: (Functor m, Control.Monad.CatchIO.MonadCatchIO m) =>
m (Either InterpreterError String)
getEval 看起来像这样:
getEval str = runInterpreter $ setImports ["Prelude"] >> eval str
如果重要,getEval 使用 Haskell 提示库 (Language.Haskell.Interpreter) 中的 eval 来进行实际的解析和计算。我怎样才能把它变成一个浮点数?