Найти уникальные записи в F # List of List - PullRequest
1 голос
/ 25 июня 2019

У меня есть запись с именем Move, которая определяется следующим образом:

type Move = {
X : int
Y : int
By: CellState }

Я создал список из списка ходов (Move list list) для хранения некоторых данных. Я хочу удалить повторяющиеся записи из этого списка. Каждый подсписок в моем примере имеет одинаковое содержимое, но в другом порядке. При печати это выглядит следующим образом:

[[{X = 5;
   Y = 1;
   By = R;}; {X = 5;
              Y = 0;
              By = B;}; {X = 4;
                         Y = 0;
                         By = B;}]; [{X = 5;
                                      Y = 0;
                                      By = B;}; {X = 4;
                                                 Y = 0;
                                                 By = B;}; {X = 5;
                                                            Y = 1;
                                                            By = R;}];
 [{X = 4;
   Y = 0;
   By = B;}; {X = 5;
              Y = 1;
              By = R;}; {X = 5;
                         Y = 0;
                         By = B;}]]

Этот список содержит 3 списка, каждый из которых имеет 3 записи. Каждый список имеет одинаковые записи, но в разном порядке. Я хочу знать, есть ли способ удалить дублирующиеся подсписки из основного списка

1 Ответ

2 голосов
/ 25 июня 2019

Если вы закажете подсписки, то List.distinct сделает свое дело:

yourList 
|> List.map List.sort
|> List.distinct
...