i'am, начинающийся с scala, и попробуйте применить к нему функциональный путь, но я вышел с кучей вложенных if\else конструкций, которые трудно читать, и мне интересно, есть ли более хороший способ программирования таких вещи? Например, я написал script, который выполняет балансировку скобок
def balance(chars: List[Char]): Boolean = {
def checkParentesys(chars: List[Char], parentesis: List[Char]): Boolean =
if (chars.isEmpty && parentesis.isEmpty)
true
else
if (chars.head == '(')
checkParentesys(chars.tail, '(' :: parentesis)
else
if (parentesis.isEmpty)
false
else
checkParentesys(chars.tail, parentesis.tail)
checkParentesys(chars.filter(s => s == '(' || s == ')'), List())
}
Можете ли вы предложить, как я могу написать его более функциональным и более scala как?