Et d'où sorte a et b ? En plus tu as un point avec deux coordonnées de différents types ?...
data Point = !Int :+ !Int
deriving (Ord, Eq, Show, Read)
type Ligne = [Point]
serait déjà plus...
Type: Messages; Utilisateur: Jedai
Et d'où sorte a et b ? En plus tu as un point avec deux coordonnées de différents types ?...
data Point = !Int :+ !Int
deriving (Ord, Eq, Show, Read)
type Ligne = [Point]
serait déjà plus...
Rien de bien compliqué en fait : Je fait un fold gauche sur la liste en passant deux informations : une Map et la liste sans boucle des points jusqu'ici (à l'envers). La Map associe chaque point à la...
Ca change pas mal les choses !
Un double parcours semble légèrement suboptimal (pour être poli)... Peut-être une partition de l'espace serait-elle plus adaptée ? Type quadtree ? On pourrait ensuite...
Par exemple une petite solution qui coupe toujours la dernière boucle possible :
import Data.List
import qualified Data.Map as M
cutLasts :: (Ord a) => [a] -> [a]
cutLasts = reverse . fst ....
Je suppose que tu voudrais que cela devienne :
[(0, 3), (1, 3), (4, 3)]
Mais qu'en serait-il de :
[(0, 3), (1, 3), (2, 3), (1, 3), (4, 3), (2, 3)]
??
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.