У меня есть неупорядоченный список горизонтальных / вертикальных сегментов длиной 1, которые составляют один или несколько многоугольников. Теперь мне нужно найти список всех соединенных углов в каждом многоугольнике.
Пример:
[Horizontal (0,0), Vertical (2,0), Horizontal (1,0), Horizontal (2,2), Vertical (2,1)]
представляет такую строку
2 X--X
|
1 X
|
0 X--X--X
0 1 2
Я бы искал углы [(2,0), (2,2)].
В императивных языках я, вероятно, использовал бы (дважды- ) связанные структуры данных и пройти по ним. Я не могу придумать элегантного представления для этого в Haskell. Как бы вы это сделали?