在Haskell中,我可以编写read "(1,2)"并取回元组(1,2).在Scala有什么办法吗?我想我正在寻找的是访问scala解释器中的解析器.
jac*_*aco 11
我试过在scala.tools.nsc中逛逛?
是否足以满足您的需求(或者至少是一个良好的起点)?
scala> val interpreter = new tools.nsc.Interpreter
interpreter: scala.tools.nsc.Interpreter = scala.tools.nsc.Interpreter@522c5afb
scala> interpreter interpret "(3, 5)"
res0: (Int, Int) = (3,5)
res139: scala.tools.nsc.InterpreterResults.Result = Success
scala> interpreter interpret "1 to 10 toList"
res1: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
res140: scala.tools.nsc.InterpreterResults.Result = Success
Run Code Online (Sandbox Code Playgroud)
[编辑:似乎不推荐使用tools.nsc.Interpreter.现在有一个tools.nsc.interpreter包]