J'ai une liste de chaînes qui sont sous la forme de XxX où X sont des nombres jusqu'à 4 chiffres (ce sont des tailles d'image en (pixels) x (pixels)).Comment puis-je trier mes tailles d'image sur les deux coordonnées?
Par exemple:
["192x192","64x84","96x96","64x64","292x192","32x32","64x12"]
L'utilisation d'un mysort fonction qui est juste tri par insertion qui ne regarde que le nombre jusqu'à x:
mysort [] = []
mysort [x] = [x]
mysort (x:xs) = insert (mysort xs)
where insert [] = [x]
insert (y:ys) | takeUntilX x <= takeUntilX y = x : y : ys
| otherwise = y : insert ys
Je reçois ceci:
["192x192","292x192","32x32","64x84","64x64","64x12","96x96"]
Ce qui n'est que partiellement trié, tous les "64x **" triés restants dans leur ordre d'origine mais je veux qu'ils soient aussi triés si je reçois ceci:
["192x192","292x192","32x32","64x12","64x64","64x84","96x96"]
Quelle serait une meilleure solution - fonction de modification mysort ou d'écrire une nouvelle fonction qui trie la liste partiellement triés? Pouvez-vous me donner l'idée de base que je pourrais faire?
:) Il y a toujours quelqu'un qui utilise Haskell au jour le jour (contrairement à moi). Fair-play - +1 –
ne fonctionne pas; tri: ["192x192", "64x184", "96x96", "64x64", "292x192", "32x32", "64x12"] donne ["192x192", "292x192", "32x32", "64x12", " 64x184 "," 64x64 "," 96x96 "] 64 sont faux – ostochast
@ Possible: Voir ci-dessous - J'ai compris de quoi vous parliez (n'était pas clair pour moi avant). –