Próbuję reimplement List.distinct
funkcję:Strange FSharpLint ostrzeżenie
let inline distinct list =
let folder curr = function
| [] -> [curr]
| l -> if List.contains curr l then l else curr :: l
List.foldBack folder list []
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dostałem ostrzeżenie niestrzępiącą który mówi
List.foldBack f x []
może być w stanie być refactored dox
Jednak nie ma to dla mnie większego sensu, ponieważ to prowadzi mnie do powrotu na pierwotną listę bez wykonywania di złośliwa logika.
Czy to błąd FSharpLint?
Może to być błąd. Byłoby to całkiem rozsądne, gdyby nieco dziwaczna wiadomość, gdyby była spasowana, a nie składana. – scrwtp
Muszę zaznaczyć, że ta funkcja zdecydowanie nie robi tego, co myślisz. Zacznijmy od tego, że oba parametry "folderu" to listy, co oznacza, że parametr "odrębny" musi być listą list. –
@Fyodor Nie rozumiem co masz na myśli, tak jak próbowałem w FSI, a typ funkcji to ''lista ->' lista, gdzie" a: równość ". I z wprowadzeniem "[1; 0; 0] 'dał mi poprawne wyjście' [1; 0] '. Czy skopiowałem coś źle? – rexcfnghk