2017-09-10 1 views
-2

i ai 2 tableaux de types différents, 1) dit réseau moduleinfo qui possède chaque élément de typesorte un réseau basé sur un réseau d'un autre/autre type en Haskell ou purescript

{name :: String, pack :: String }

et 2) String Tableau. Le tableau simple String contient un élément similaire à name classé sous le type moduleinfo, par exemple String. Le tableau simple String est déjà trié mais pas le tableau moduleinfo.

maintenant comment puis-je écrire une fonction pour trier moduleinfo tableau en fonction de l'ordre de tableau simple String. Étant donné que le champ name dans moduleinfo correspondrait avec des éléments de tableau simples String.

également la fonction renvoie un tableau TRIEE de moduleinfo Type

+2

Que se passe-t-il si l'un des 'name' n'est pas présent dans la liste triée de' String's? –

+1

Je vous suggère de trier 'moduleinfo' directement. –

+0

Notez que vous devez publier un code complet qui sera compilé. En particulier, '{name :: String, pack :: String}' provoque des erreurs de compilation car il manque 'data' et un nom pour le type de données. –

Répondre

1

Je suggère que vous triez moduleinfo directement:

sortedModuleInfo = sortWith (\(Module name1 pack1) (Module name2 pack2) -> compare name1 name2) moduleinfo 

Ici je suppose que vous avez déclaré un type nommé Module avec le name et pack éléments que vous avez montrés dans votre question.