私はscalaから始めて、それに機能的な方法を適用しようとしていますが、読みにくいネストされたif \ else構造がたくさん出てきました。そのようなものをプログラムするための、より良い方法があるのでしょうか。
たとえば、括弧のバランスをとるスクリプトを作成しました。
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())
}
より機能的でスカラのように書くにはどうすればよいですか?