/
EugenyCh7
/
JavaAndScalaLessons
Обзор
Документация
Войти
/
EugenyCh7
/
JavaAndScalaLessons
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ScalaTest/src/Test.scala
22 строки
577 B
Eugeny Chekmarev
18.06.2021
18 июн 2021, 21:14
18 июн 2021, 21:14
ab6e878
Код
Авторство
О чём код?
import scala.util.matching.Regex import scala.util.parsing.combinator.RegexParsers object Test extends App { def powerExpr(list: List[Double]): Double = { list.foldRight(1.0)((l, r) => Math.pow(l, r)) } class ExprParser extends RegexParsers { val number: Regex = "[0-9]+".r def expr: Parser[Double] = (number ^^ (_.toDouble)) ~ rep("^" ~> expr) ^^ { case x ~ (list: List[Double]) => powerExpr(x :: list) } } val parser = new ExprParser val result = parser.parseAll(parser.expr, "4^2^3") if (result.successful) println(result.get) }