Извиняюсь, если это FAQ, я его нигде не нашел. Вероятно, это вопрос начинающего Scala и / или функционального программирования. У меня большой опыт работы с Java и OO, но я новичок в Scala и FP.
Допустим, у меня есть список, который, возможно, имеет:
a, b, b, c1, b, d, c2, d, a, ce, b, a, c1, b, ce, a, b
Теперь я собираюсь обработать этот список и вернуть дерево XML (scala.xml.NodeSeq или что-то еще). Самое сложное в том, что мне нужно заменить любые случаи c диапазоном, включающим любые последующие элементы, вплоть до следующего. Дальнейшее усложнение вложений должно быть выполнено, но любые встречающиеся элементы ce должны закрывать все ожидающие теги.
Итак, я хочу получить что-то вроде этого:
<a/>
<b/>
<b/>
<span style="style1">
<b/>
<d/>
<span style="style2">
<d/>
<a/>
</span>
</span>
<b/>
<a/>
<span style="style1">
<b/>
</span>
<a/>
<b/>
Это в Scala, и я бы предпочел сделать это «чисто функциональным способом», используя лучшие практики Scala. Я очень расстроен, я не могу разобраться с этим.
Спасибо.