Если у меня есть список вида Список [Любой] как этот
val list = Список (Список (1, 1), 2, Список (3, Список (5, 8)))
как мне написать оператор совпадения, который различает
- Отдельный элемент любого типа, не входящего в список (т. Е. 2 сверху)
- Элементы, являющиеся списками (т.е. Список (1,1) и Список (3, Список (5, 8) сверху)
или в псевдо-скале
list match {
case x:"single non-list element" => // do something with single element x
case y:"where y is a list" => // do something with list y
}
обычный head :: tails соответствие не работает, так как head может иметь тип Любой , который включает другие списки.