我们知道how to convert a String to an Integer这样的字符串,例如"50"
。假设字符串是"2^3"
,如何从中获取8
?如果事先不知道该操作是一种权力,还有哪些东西适用于"2+3"
等,是否有效?
答案 0 :(得分:0)
据我所知,没有可用的表达式评估器 基本的Haskell库。
这对你有用吗?
import System.Process
eval :: String -> IO Integer
eval expr = do
r <- readProcess "ghc" ["-e", expr] ""
return (read r)
main = eval "2^3" >>= print
但是它在IO monad中运行并且它不是很强大。
答案 1 :(得分:-2)
嗯,您可以尝试使用QuasiQuotes:
ghci> :set -XQuasiQuotes
ghci> :set -XTemplateHaskell
ghci> let a = [|1 + 1|]
ghci> $a
2
ghci>