Рекурсивная функция, проверяющая баланс скобок в строке

Написать рекурсивную функцию , которая проверяет баланс скобок в строке, который мы представляем как List[Char], а не String. Для решения задачи недостаточно сравнить общее количество скобок, которые открываются и закрываются. НЕобходио реализовать следующую функцию:

def scales(expression: List [Char]): Boolean

Можно определить внутреннюю функцию, если необходимо передать дополнительные параметры в эту функцию. Для написания функции можно использовать методы: expression.isEmpty: Boolean, expression.head: Char, expression.tail: List[Char], а также метод toList для превращения String в List [Char].