|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() ![]() Inscription : décembre 2005 Messages : 165 ![]() |
Bonjour,
Voici une petite question sur la capacité d'optimisation élémentaire du code par Haskell. La fonction areInsidePolygon suivante fait appel à une fonction isInsidePolygon qui découpe son polygone d'entrée en sous-polygones convexes et teste la présence d'un point donné dans chacun d'entre eux. Ce découpage est une opération couteuse qui est réalisée pour chacun des points de la liste sur laquelle itère la fonction map. Code :
Ajout : et est-ce que ça changerait quelque chose de l'écrire comme ceci ? Code :
|
||||
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : juillet 2011 Messages : 10 ![]() |
Bonjour,
Je ne sais pas pour ta premiere question mais concernant ta simplification ça marche. http://learnyouahaskell.com/higher-o...unctions#folds C'est mentionné dans la solution de sum'. Salut. EDIT: oups j'avais pas vu la date... |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : mars 2010 Messages : 281 ![]() |
Haskell ne fait pas de mémoization automatique. Néanmoins, si tu as "bien" écrit isInsidePolygon, ça va marcher. Par là j'entends : l'application de isInsidePolygon à un polygon calcule le découpage, puis retourne une fonction qui à un point associe un booléen. Dans ce cas, le découpage ne sera effectivement effectué qu'une seule fois dans areInside.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com