在String到Integer中给出的功率

时间:2016-08-13 07:23:25

标签: haskell

我们知道how to convert a String to an Integer这样的字符串,例如"50"。假设字符串是"2^3",如何从中获取8?如果事先不知道该操作是一种权力,还有哪些东西适用于"2+3"等,是否有效?

2 个答案:

答案 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>