2 Stimmen

Liste in einer Liste von Listen sortieren F#

Ich versuche, jede Position (die eine Liste ist) in einer Positionsliste zu sortieren. Derzeit bin ich doint wie diese:

type Position = Position of  list<int * Piece>

und meine Funktion:

let SortPositionList positionList : Position list = 
let rec loop list =
    match (list: Position list) with
    | [] -> []
    | hd::tl -> [List.sortBy(fun (x:(int*Piece)) -> fst x)(GetInternStruct(hd))::loop tl]
loop positionList

Meiner Meinung nach könnte dies durch rekursive Sortierung der tatsächlichen Kopf der Liste und dann concat es mit dem Rest der Liste getan werden, aber es funktioniert nicht. Die Fehler in dieser Funktion sind:

Typ nicht übereinstimmend. Erwartet eine (int * Stück)-Liste Liste, aber gegeben eine (int * Stück)-Liste Liste Liste Der Typ 'int * Stück' stimmt nicht mit dem Typ '(int * Stück)-Liste' überein, in der unterstrichenen loop tl

Typ nicht übereinstimmend. Erwartet eine Positionsliste, aber gegeben eine (int * Stück) Liste Liste Liste Der Typ 'Position' stimmt nicht mit dem Typ '(int * Stück) Liste Liste' überein, im unterstrichenen Aufruf der Schleife, loop positionList

Ich hoffe, Sie können helfen, danke im Voraus

Pedro Dusso

EDIT AList.map, die die Sortierfunktion übergibt, wäre ein guter Ansatz?

LÖSUNG

let SortPositionList (positionList : Position list) =
    List.map (fun (Position(position)) -> List.sort(position)) positionList

Da meine Positionsstruktur ein (int * Piece) lst ist, führe ich in der anonymen Funktion einen Mustervergleich durch und sortiere sie.

Vielen Dank für die Antworten!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X