Как я могу отфильтровать матрицу N*N, которая представлена в виде карты (N,N) по строке, столбцу, диагонали и анти-диагонали в scala?
Мне интересно, как я могу использовать встроенные методы для Maps/lists/etc... в Scala, чтобы получить строки, столбцы, диагональ и анти-диагональ N N матрицы в Scala? Предположим, что у вас есть N N матрица, представленная на карте, где каждая запись соответствует позиции, например: Map(0,0), Map(0,1) ... Map(N,N).
Может кто-нибудь придумать предикат, который позволил бы этому работать? Так, например, я мог бы вызвать map.groupby(предикат) и получить список списков по строке, столбцу, диагонали и анти-диагонали?
Примечание: я не могу использовать для циклов или любых изменяемых объектов, только встроенные методы и сопоставление с образцом, если я должен.
Любая помощь или руководство будет принята с благодарностью! Большое спасибо.