正しい文字列の変換に苦労しています。数式(基本的には文字列)を評価する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を使用して、実際の解析と計算を行います。どうすればこれをフロートに入れることができますか?