Patrick_35 Posté(e) le 10 juillet 2008 Auteur Posté(e) le 10 juillet 2008 Chapeau (gile) Conclusion : Rien de plus performant que la forme itérative/récursiveJ''étais content de moi avec le mapcar pour la version sub :P tu as été plus subtile avec le cdrJe n'y avais pas pensé. Encore bravo @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 Merci, La routine sub_gile1 était déjà écrite, elle est dans dans Listes.lsp sur cette page (nommée subst-i).J'ai écris les autres pour le challenge, à la place des premières (deb_ et fin_), j'utilise sublist (même lien que ci-dessus) qui est moins rapide mais plus polyvalente (elle fonctionne comme substr) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 Salut (gile),Super astucieuses tes méthodes ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bruno_T Posté(e) le 17 juillet 2008 Posté(e) le 17 juillet 2008 bonjour,je pense que le reverse n'est pas nécessaire dans l'algo de Patrick (defun deb_pat2 (lst n / i res) (setq i -1) (repeat n (setq res (cons (nth (setq i (1+ i)) lst) res)) ) (reverse res) ) en commençant par le dernier élément du résultat voulu et en faisant évoluer i avec le pas -1 :(nth comme append est couteux en temps) (defun deb_bto1 (lst n / i res) (setq i n) (repeat n (setq res (cons (nth (setq i (1- i)) lst) res)) ) ) ceci dit, je n'ai guère mieux que la solution de gile, c'est tout simple : (defun deb_BTO3 (l n / r) (repeat n (setq r (cons (car l) r)) (setq l (cdr l)) ) (reverse r) ) j'utilise souvent ce bentchmark, il faut savoir que les résultats sont dépendants de l'ordre dans lequel les fonctions sont testées, il permet de dégager les meilleurs solutions mais pas d'avoir la photo finish entre elles :) résultats :liste de 10 éléments :Benchmarking .................Elapsed milliseconds / relative speed for 16384 iteration(s): (DEB_GILE1 LST1 4).....1281 / 1.04 (DEB_GILE2 LST1 4).....1281 / 1.04 (DEB_BTO3 LST1 4)......1328 / 1 liste de 100 éléments :Benchmarking ................Elapsed milliseconds / relative speed for 8192 iteration(s): (DEB_BTO3 LST2 40)......1172 / 1.04 (DEB_GILE2 LST2 40).....1204 / 1.01 (DEB_GILE1 LST2 40).....1219 / 1 liste de 1000 éléments :Benchmarking ..............Elapsed milliseconds / relative speed for 2048 iteration(s): (DEB_BTO3 LST3 300)......1391 / 1.04 (DEB_GILE1 LST3 300).....1453 / 1 (DEB_GILE2 LST3 300).....1453 / 1 liste de 10000 éléments :Benchmarking ...........Elapsed milliseconds / relative speed for 256 iteration(s): (DEB_BTO3 LST4 3000)......1672 / 1.06 (DEB_GILE1 LST4 3000).....1766 / 1 (DEB_GILE2 LST4 3000).....1766 / 1 ce ne sont pas des différences significatives. Bruno Toniutti
ElpanovEvgeniy Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 Salut! :) Regardez ma variante faite pour de grandes listes... (defun deb-e2 (l n / r) (repeat (/ n 4) (setq r (cons (cadddr l) (cons (caddr l) (cons (cadr l) (cons (car l) r))) ) ;_ cons l (cddddr l) ) ;_ setq ) ;_ repeat (repeat (rem n 4) (setq r (cons (car l) r) l (cdr l) ) ;_ setq ) ;_ repeat (reverse r) ) Evgeniy
ElpanovEvgeniy Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 liste de 10 elements : (DEB_GILE2 L 4).....1638 / 1.08 (DEB_GILE1 L 4).....1653 / 1.07 (DEB_BTO3 L 4)......1716 / 1.03 (DEB-E2 L 4)........1763 / 1 liste de 10 elements : (DEB-E2 L 8)........1919 / 1.05 (DEB_GILE2 L 8).....1935 / 1.04 (DEB_GILE1 L 8).....1950 / 1.03 (DEB_BTO3 L 8)......2012 / 1 liste de 100 elements : (DEB-E2 L 40)........1576 / 1.38 (DEB_BTO3 L 40)......2121 / 1.02 (DEB_GILE2 L 40).....2137 / 1.01 (DEB_GILE1 L 40).....2168 / 1 liste de 100 elements : (DEB-E2 L 80)........1201 / 1.52 (DEB_GILE2 L 80).....1794 / 1.02 (DEB_BTO3 L 80)......1794 / 1.02 (DEB_GILE1 L 80).....1826 / 1 liste de 1000 elements : (DEB-E2 L 400)........1138 / 1.77 (DEB_BTO3 L 400)......1919 / 1.05 (DEB_GILE2 L 400).....1934 / 1.04 (DEB_GILE1 L 400).....2013 / 1 liste de 1000 elements : (DEB-E2 L 800)........1092 / 1.79 (DEB_GILE2 L 800).....1903 / 1.02 (DEB_BTO3 L 800)......1903 / 1.02 (DEB_GILE1 L 800).....1950 / 1 Evgeniy
Bruno_T Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 Evgeniy, superbe :) , ça élimine environ 75% des setq Bruno Toniutti
Patrick_35 Posté(e) le 18 juillet 2008 Auteur Posté(e) le 18 juillet 2008 Bonjour Malin ElpanovEvgeniy, du grand art :) je pense que le reverse n'est pas nécessaire dans l'algo de PatrickEn regardant le tien, je vois que tu en utilise aussi un ;)Ceci dit, je n'utilise pas assez le cdr. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ElpanovEvgeniy Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 J'ai fait une petite étude : :) (defun deb_pat1 (lst n) (vl-remove-if '(lambda (x) (< (setq n (1- n)) 0)) lst) ) ;_ defun (defun deb_pat2 (lst n / i res) (setq i -1) (repeat n (setq res (cons (nth (setq i (1+ i)) lst) res))) (reverse res) ) ;_ defun (defun deb_Bred (lst n / l) (repeat n (setq l (append l (list (nth 0 lst))) lst (cdr lst) ) ;_ setq ) ;_ repeat l ) ;_ defun (defun deb_gile1 (lst ind) (if (< 0 ind) (cons (car lst) (deb_gile1 (cdr lst) (1- ind))) ) ;_ if ) ;_ defun (defun deb_gile2 (lst ind / ret) (while (< 0 ind) (setq ret (cons (car lst) ret) ind (1- ind) lst (cdr lst) ) ;_ setq ) ;_ while (reverse ret) ) ;_ defun (defun deb_BTO3 (l n / r) (repeat n (setq r (cons (car l) r)) (setq l (cdr l))) (reverse r) ) ;_ defun (defun deb-e2 (l n / r) (repeat (/ n 4) (setq r (cons (cadddr l) (cons (caddr l) (cons (cadr l) (cons (car l) r))) ) ;_ cons l (cddddr l) ) ;_ setq ) ;_ repeat (repeat (rem n 4) (setq r (cons (car l) r) l (cdr l) ) ;_ setq ) ;_ repeat (reverse r) ) ;_ defun liste de 10 elements : (DEB_GILE1 L 1).....1700 / 2.86 (DEB_GILE2 L 1).....1716 / 2.84 (DEB_PAT2 L 1)......1857 / 2.62 (DEB_BRED L 1)......1887 / 2.58 (DEB-E2 L 1)........1981 / 2.46 (DEB_PAT1 L 1)......4867 / 1.00 (DEB_GILE1 L 3).....1840 / 2.61 (DEB_GILE2 L 3).....1934 / 2.48 (DEB_PAT2 L 3)......1997 / 2.41 (DEB-E2 L 3)........2106 / 2.28 (DEB_BRED L 3)......2137 / 2.25 (DEB_PAT1 L 3)......4805 / 1.00 (DEB_GILE2 L 6).....1030 / 2.33 (DEB_GILE1 L 6).....1045 / 2.30 (DEB-E2 L 6)........1092 / 2.20 (DEB_PAT2 L 6)......1217 / 1.97 (DEB_BRED L 6)......1280 / 1.88 (DEB_PAT1 L 6)......2402 / 1.00 (DEB_GILE2 L 9).....1139 / 2.11 (DEB_GILE1 L 9).....1155 / 2.08 (DEB-E2 L 9)........1155 / 2.08 (DEB_PAT2 L 9)......1264 / 1.90 (DEB_BRED L 9)......1466 / 1.64 (DEB_PAT1 L 9)......2403 / 1.00 liste de 100 elements : (DEB_GILE2 L 10).....1185 / 3.32 (DEB-E2 L 10)........1202 / 3.27 (DEB_GILE1 L 10).....1217 / 3.23 (DEB_PAT2 L 10)......1310 / 3.00 (DEB_BRED L 10)......1528 / 2.57 (DEB_PAT1 L 10)......3932 / 1.00 (DEB_PAT2 L 30)......2184 / 1.79 (DEB-E2 L 30)........2668 / 1.47 (DEB_GILE1 L 30).....3276 / 1.20 (DEB_BRED L 30)......3354 / 1.17 (DEB_GILE2 L 30).....3541 / 1.11 (DEB_PAT1 L 30)......3916 / 1.00 (DEB-E2 L 60)........1731 / 3.46 (DEB_GILE1 L 60).....2636 / 2.27 (DEB_GILE2 L 60).....2714 / 2.21 (DEB_PAT1 L 60)......2949 / 2.03 (DEB_PAT2 L 60)......3074 / 1.95 (DEB_BRED L 60)......5990 / 1.00 (DEB-E2 L 90)........1217 / 4.44 (DEB_PAT1 L 90)......1513 / 3.57 (DEB_GILE1 L 90).....1996 / 2.70 (DEB_GILE2 L 90).....2044 / 2.64 (DEB_PAT2 L 90)......2262 / 2.39 (DEB_BRED L 90)......5398 / 1.00 liste de 1000 elements : (DEB-E2 L 100)........1233 / 5.67 (DEB_GILE1 L 100).....2075 / 3.37 (DEB_GILE2 L 100).....2106 / 3.32 (DEB_PAT2 L 100)......2465 / 2.84 (DEB_BRED L 100)......6084 / 1.15 (DEB_PAT1 L 100)......6989 / 1.00 (DEB-E2 L 300).........1591 / 11.66 (DEB_GILE1 L 300)......2854 / 6.50 (DEB_GILE2 L 300)......2964 / 6.26 (DEB_PAT1 L 300).......3542 / 5.24 (DEB_PAT2 L 300).......4274 / 4.34 (DEB_BRED L 300)......18549 / 1.00 (DEB-E2 L 600).........1606 / 25.25 (DEB_PAT1 L 600).......2294 / 17.67 (DEB_GILE2 L 600)......2777 / 14.60 (DEB_GILE1 L 600)......2902 / 13.97 (DEB_PAT2 L 600).......8721 / 4.65 (DEB_BRED L 600)......40545 / 1.00 (DEB-E2 L 900).........1170 / 51.03 (DEB_PAT1 L 900).......1763 / 33.86 (DEB_GILE2 L 900)......2074 / 28.79 (DEB_GILE1 L 900)......2169 / 27.52 (DEB_PAT2 L 900)......10405 / 5.74 (DEB_BRED L 900)......59701 / 1.00 (defun fin_Bred (lst n / l i) (repeat (- (setq i (length lst)) (1- n)) (setq l (cons (nth (setq i (1- i)) lst) l) n (1+ n) ) ;_ setq ) ;_ repeat l ) ;_ defun (defun fin_pat1 (lst n) (vl-remove-if '(lambda (x) (> (setq n (1- n)) 0)) lst) ) ;_ defun (defun fin_pat2 (lst n / i res) (setq i -1 lst (reverse lst) ) ;_ setq (repeat (1+ (- (length lst) n)) (setq res (cons (nth (setq i (1+ i)) lst) res)) ) ;_ repeat ) ;_ defun (defun fin_gile1 (lst ind) (if (< 1 ind) ; (and lst (< 1 ind)) (fin_gile1 (cdr lst) (1- ind)) lst ) ;_ if ) ;_ defun (defun fin_gile2 (lst ind) (while (< 1 ind) ; (and lst (< 1 ind)) (setq ind (1- ind) lst (cdr lst) ) ;_ setq ) ;_ while ) ;_ defun (defun fin-e (l n) (setq n(1- n)) (repeat (/ n 4) (setq l (cddddr l))) (repeat (rem n 4) (setq l (cdr l))) l ) ;_ defun (fin_gile2 l 1) => nil liste de 10 elements : (FIN_GILE1 L 1).....1576 / 3.04 (FIN-E L 1).........1872 / 2.56 (FIN_PAT2 L 1)......2621 / 1.83 (FIN_BRED L 1)......2715 / 1.76 (FIN_PAT1 L 1)......4789 / 1.00 (FIN_GILE2 L 3).....1482 / 2.40 (FIN_GILE1 L 3).....1560 / 2.28 (FIN-E L 3).........1716 / 2.07 (FIN_PAT2 L 3)......2169 / 1.64 (FIN_BRED L 3)......2325 / 1.53 (FIN_PAT1 L 3)......3557 / 1.00 (FIN_GILE2 L 6).....1669 / 2.22 (FIN_GILE1 L 6).....1701 / 2.17 (FIN-E L 6).........1716 / 2.15 (FIN_PAT2 L 6)......1950 / 1.90 (FIN_BRED L 6)......2013 / 1.84 (FIN_PAT1 L 6)......3697 / 1.00 (FIN_PAT2 L 9)......1825 / 2.14 (FIN-E L 9).........1825 / 2.14 (FIN_BRED L 9)......1841 / 2.12 (FIN_GILE2 L 9).....1934 / 2.02 (FIN_GILE1 L 9).....2012 / 1.94 (FIN_PAT1 L 9)......3900 / 1.00 liste de 100 elements : (FIN_GILE2 L 10)......1965 / 6.30 (FIN-E L 10)..........1981 / 6.24 (FIN_GILE1 L 10)......2106 / 5.87 (FIN_PAT1 L 10).......7754 / 1.60 (FIN_PAT2 L 10)......10983 / 1.13 (FIN_BRED L 10)......12371 / 1.00 (FIN-E L 30).........1061 / 4.48 (FIN_GILE2 L 30).....1514 / 3.14 (FIN_GILE1 L 30).....1606 / 2.96 (FIN_PAT1 L 30)......3136 / 1.52 (FIN_PAT2 L 30)......3946 / 1.21 (FIN_BRED L 30)......4758 / 1.00 (FIN-E L 60).........1217 / 2.63 (FIN_GILE2 L 60).....2200 / 1.45 (FIN_GILE1 L 60).....2434 / 1.31 (FIN_PAT2 L 60)......2574 / 1.24 (FIN_BRED L 60)......3182 / 1.01 (FIN_PAT1 L 60)......3198 / 1.00 (FIN_PAT2 L 90)......1295 / 2.51 (FIN-E L 90).........1342 / 2.42 (FIN_BRED L 90)......1451 / 2.24 (FIN_GILE2 L 90).....2949 / 1.10 (FIN_PAT1 L 90)......3182 / 1.02 (FIN_GILE1 L 90).....3245 / 1.00 liste de 1000 elements : (FIN-E L 100)...........1186 / 87.96 (FIN_GILE2 L 100).......2527 / 41.28 (FIN_GILE1 L 100).......2839 / 36.74 (FIN_PAT1 L 100)........9298 / 11.22 (FIN_PAT2 L 100).......70606 / 1.48 (FIN_BRED L 100)......104318 / 1.00 (FIN-E L 300)..........1170 / 62.44 (FIN_GILE2 L 300)......3510 / 20.81 (FIN_GILE1 L 300)......4493 / 16.26 (FIN_PAT1 L 300).......9220 / 7.92 (FIN_PAT2 L 300)......45630 / 1.60 (FIN_BRED L 300)......73055 / 1.00 (FIN-E L 600)..........1888 / 26.17 (FIN_GILE2 L 600)......6552 / 7.54 (FIN_GILE1 L 600)......8487 / 5.82 (FIN_PAT1 L 600).......9126 / 5.41 (FIN_PAT2 L 600)......19095 / 2.59 (FIN_BRED L 600)......49406 / 1.00 (FIN-E L 900).........1310 / 5.63 (FIN_PAT2 L 900)......1934 / 3.82 (FIN_PAT1 L 900)......4555 / 1.62 (FIN_GILE2 L 900).....4867 / 1.52 (FIN_GILE1 L 900).....6272 / 1.18 (FIN_BRED L 900)......7379 / 1.00 (defun sub_Bred (lst lst-I n) (append (deb_Bred lst n) (list lst-I) (fin_Bred lst (+ n 2))) ) ;_ defun (defun sub_pat1 (lst rpl n) (setq n (1+ n)) (mapcar '(lambda (x) (if (zerop (setq n (1- n))) rpl x ) ;_ if ) ;_ lambda lst ) ;_ mapcar ) ;_ defun (defun sub_pat2 (lst rpl n) (append (deb_pat2 lst n) (list rpl) (fin_pat2 lst (+ n 2))) ) ;_ defun (defun sub_gile1 (lst ele ind) (if (zerop ind) ; (or (zerop ind) (null lst)) (cons ele (cdr lst)) (cons (car lst) (sub_gile1 (cdr lst) ele (1- ind))) ) ;_ if ) ;_ defun (defun sub_gile2 (lst ele ind / ret) (while (< 0 ind) ; (and lst (< 0 ind)) (setq ret (cons (car lst) ret) ind (1- ind) lst (cdr lst) ) ;_ setq ) ;_ while (append (reverse ret) (cons ele (cdr lst))) ) ;_ defun (defun sub-e (l e n / r) (repeat (/ n 4) (setq r (cons (cadddr l) (cons (caddr l) (cons (cadr l) (cons (car l) r))) ) ;_ cons l (cddddr l) ) ;_ setq ) ;_ repeat (repeat (rem n 4) (setq r (cons (car l) r) l (cdr l) ) ;_ setq ) ;_ repeat (append (reverse r) (cons e (cdr l))) ) ;_ defun liste de 10 elements : (SUB_GILE1 L E 1).....1779 / 1.72 (SUB_GILE2 L E 1).....1903 / 1.61 (SUB-E L E 1).........2122 / 1.44 (SUB_PAT1 L E 1)......2418 / 1.26 (SUB_PAT2 L E 1)......2948 / 1.04 (SUB_BRED L E 1)......3057 / 1.00 (SUB_GILE1 L E 3).....1934 / 1.63 (SUB_GILE2 L E 3).....2059 / 1.53 (SUB-E L E 3).........2278 / 1.38 (SUB_PAT1 L E 3)......2371 / 1.33 (SUB_PAT2 L E 3)......2995 / 1.05 (SUB_BRED L E 3)......3151 / 1.00 (SUB_GILE1 L E 6).....1076 / 1.51 (SUB_GILE2 L E 6).....1139 / 1.42 (SUB_PAT1 L E 6)......1185 / 1.37 (SUB-E L E 6).........1185 / 1.37 (SUB_PAT2 L E 6)......1482 / 1.09 (SUB_BRED L E 6)......1622 / 1.00 (SUB_PAT1 L E 9)......1186 / 1.41 (SUB_GILE1 L E 9).....1202 / 1.39 (SUB-E L E 9).........1217 / 1.37 (SUB_GILE2 L E 9).....1248 / 1.34 (SUB_PAT2 L E 9)......1482 / 1.13 (SUB_BRED L E 9)......1669 / 1.00 liste de 100 elements : (SUB_GILE1 L E 10).....1233 / 5.71 (SUB-E L E 10).........1311 / 5.37 (SUB_GILE2 L E 10).....1326 / 5.31 (SUB_PAT1 L E 10)......2792 / 2.52 (SUB_PAT2 L E 10)......6099 / 1.15 (SUB_BRED L E 10)......7036 / 1.00 (SUB-E L E 30).........1701 / 4.67 (SUB_GILE1 L E 30).....1996 / 3.98 (SUB_GILE2 L E 30).....2028 / 3.92 (SUB_PAT1 L E 30)......2808 / 2.83 (SUB_PAT2 L E 30)......5835 / 1.36 (SUB_BRED L E 30)......7941 / 1.00 (SUB-E L E 60).........1108 / 4.66 (SUB_PAT1 L E 60)......1436 / 3.60 (SUB_GILE2 L E 60).....1544 / 3.34 (SUB_GILE1 L E 60).....1576 / 3.28 (SUB_PAT2 L E 60)......2917 / 1.77 (SUB_BRED L E 60)......5164 / 1.00 (SUB_PAT1 L E 90)......1404 / 4.96 (SUB-E L E 90).........1435 / 4.85 (SUB_GILE2 L E 90).....2075 / 3.35 (SUB_GILE1 L E 90).....2122 / 3.28 (SUB_PAT2 L E 90)......3120 / 2.23 (SUB_BRED L E 90)......6958 / 1.00 liste de 1000 elements : (SUB-E L E 100)..........1638 / 28.07 (SUB_GILE1 L E 100)......1825 / 25.19 (SUB_GILE2 L E 100)......2340 / 19.65 (SUB_PAT1 L E 100).......4899 / 9.38 (SUB_PAT2 L E 100)......36286 / 1.27 (SUB_BRED L E 100)......45974 / 1.00 (SUB-E L E 300)..........1997 / 21.43 (SUB_GILE1 L E 300)......3089 / 13.85 (SUB_GILE2 L E 300)......3573 / 11.98 (SUB_PAT1 L E 300).......4821 / 8.88 (SUB_PAT2 L E 300)......19157 / 2.23 (SUB_BRED L E 300)......42791 / 1.00 (SUB-E L E 600)..........1701 / 25.48 (SUB_PAT1 L E 600).......2683 / 16.15 (SUB_GILE1 L E 600)......2980 / 14.54 (SUB_GILE2 L E 600)......3323 / 13.04 (SUB_PAT2 L E 600).......9516 / 4.55 (SUB_BRED L E 600)......43337 / 1.00 (SUB-E L E 900)..........1202 / 32.97 (SUB_PAT1 L E 900).......1342 / 29.53 (SUB_GILE1 L E 900)......2215 / 17.89 (SUB_GILE2 L E 900)......2403 / 16.49 (SUB_PAT2 L E 900).......5928 / 6.68 (SUB_BRED L E 900)......39625 / 1.00 [Edité le 18/7/2008 par ElpanovEvgeniy] Evgeniy
(gile) Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 Chapeau Evgeniy, J'avais pensé un moment utiliser cddddr, mais obsédé par la concision et le style du code, je n'ai pas persisté. Ça aurait pu donner un truc comme ça : (defun deb_gile3 (lst ind) (cond (( (cons (car lst) (cons (cadr lst) (cons (caddr lst) (cons (cadddr lst) (deb_gile4 (cddddr lst) (- ind 4)) ) ) ) ) ) ((= 4 ind) (list (car lst) (cadr lst) (caddr lst) (cadddr lst)) ) ((= 3 ind) (list (car lst) (cadr lst) (caddr lst))) ((= 2 ind) (list (car lst) (cadr lst))) ((= 1 ind) (list (car lst))) (T nil) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ElpanovEvgeniy Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 Salut (gile)!Après vous, il ne restait pas ici les places pour un beau code.Votre code est beau!Il me restait, seulement à augmenter la productivité... Je suis content que cette leçon, vous a plu aussi! :) ps. Pourquoi il n'y a pas de suite des compétitions ? Evgeniy
Patrick_35 Posté(e) le 14 août 2008 Auteur Posté(e) le 14 août 2008 Salut ps. Pourquoi il n'y a pas de suite des compétitions ? C'est à dire qu'il est difficile de passer après toi ou (gile) :P Et pour d'autres challenges, il faut des idées.J'en ai bien quelques unes, mais elles demandent un développement assez conséquent, ce qui n'est pas le but recherché (du moins je le pense). @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bseb67 Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 Salut, Et pour d'autres challenges, il faut des idées.J'en ai bien quelques unes, mais elles demandent un développement assez conséquent, ce qui n'est pas le but recherché (du moins je le pense). Et la suite de fibonnacci? ou la tour de hanoï ? Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
ElpanovEvgeniy Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 Salut ps. Pourquoi il n'y a pas de suite des compétitions ? C'est à dire qu'il est difficile de passer après toi ou (gile) :P @+ Je suis toujours prêt, aller après vous! Pour moi, ces compétitions, sont très intéressantes!Chaque fois, je trouve les nouvelles idées. Evgeniy
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant