Play the Rosetta Code game
One nice way to experiment and test the language can be to implements the various tasks of the Rosetta Code project.
http://rosettacode.org/wiki/Category:Programming_Tasks
Current implemented tasks are in the https://github.com/privat/nit/tree/master/examples/rosettacode directory
Some tasks are implemented and not yet reported to the wiki pages. See http://rosettacode.org/wiki/Reports:Tasks_not_implemented_in_Nit for details
http://rosettacode.org/wiki/Nit
Si des gens veulent jouer, choisissez une lettre et faites les taches commençant par cette lettre. Personnellement, je trouve que c'est très relaxant.
Une fois #844 intégrée il sera facile d'ajouter de nouvelles taches au fur et à mesure.
Salut,
Je trouve un problème de performance en faisant l'exemple de http://rosettacode.org/wiki/Hailstone_sequence, j'ai utilisé l'algorithme le plus classique et le plus évident mais dans la 3ème partie où je dois avoir la plus longue séquence d'un nombre inférieur à 100000, l'execution prend presque 20 à 30 secondes, j'ai même vu l'implémentation du fun is_even qui utilise simplement un modulo. Est-ce qui il y a une solution ou je dois penser à optimiser plus en algorithmique ? Merci
PS: voila le code que j'ai écrit:

@amineorion Bonjour, est-ce qu'on peut avoir le code autrement que dans un png pour qu'on puisse tester et vous revenir avec une réponse pertinente ? Vous pouvez utiliser gist pour facilement partager un morceau de code.
Yo !
En refaisant ton algo naïf (perso je l'ai fait par raffinement de Int plutôt que top-level, mais ça devrait pas impacter), j'arrive à un runtime de .848 s compilé avec nitg et les options par défaut, c'est étrange en effet que ça prenne autant de temps chez toi...
Tu tournes sur quel environnement pour savoir ? On tourne pas mal tous sur un environnement analogue dans la team, fait que c'est peut-être ça le problème potentiel ?
D'autant que ma machine est loin d'être une brute (Q6600-4Gio RAM), j'imagine que tu devrais arriver à un meilleur runtime.
Au hasard tu l'exécutes comment ? Interpréteur ? Si c'est le cas, ouais, lui, il est lent comme jamais, je comprends le temps de runtime (chez moi il en finit pas, j'ai abrégé ses souffrances après quasi 3 minutes de moulinage).
Je te laisse checker mon code : https://gist.github.com/R4PaSs/831747860776257bb0a4
Si t'as d'autres questions, hésites-pas !
Voila https://gist.github.com/amineorion/9b96c227369b73d8f608 Ma machine tourne sur un OSX (i7-16Go RAM) Oui j'utilise un interpréteur
OK, interpréteur du coup c'est sûrement ça le trouble, essaye de le compiler avec nitg et regarde le temps qu'il prend, tu devrais arriver à des résultats sensiblement plus raisonnables !
Oui sa marche très bien maintenant merci
Salut, j'ai un petit problème de performance quand je calcul le hamming number au position 1,000,000 de http://rosettacode.org/wiki/Hamming_numbers voila mon code : https://gist.github.com/amineorion/f60f06382b51d079e244 sa prend presque 5 minutes ( j'utilise nitg) et il affiche au final un 0, je croix il a atteint le max. Je sais pas s'il y a un class comme BigInteger en java ou le Int est comme Ruby où il a un grand limite, merci
Yo !
Hm, malheureusement à date y'a pas d'entiers de taille variable en Nit, on est limités à la spec des long de C.
Ça prendrait de faire un wrapper de bignum par exemple pour avoir ça, mais à date personne s'y est attelé (faut dire personne en a eu besoin à date :) )
Donc sa sert a rien de faire les problèmes de ce genre ?
- Show the one millionth Hamming number (if the language – or a convenient library – supports arbitrary-precision integers).
Donc, la partie > 231 est optionelle.
Oh ok
Do I add RosettaCode problems in examples/rosettacode ?
Ouais pas de soucis tu peux ! Tu pourras faire une Pull-Request quand tu veux pour faire intégrer ça dans le repo master !
Template for a Nit entry in Rosetta Code:
=={{header|Nit}}==
Source: [$(URL) the official Nit’s repository]
<lang nit>$(IMPLEMENTATION)</lang>
{{out}}
<pre>$(OUT)</pre>
Where:
$(URL): The URL of the Nit module in GitHub (masterbranch). Should start withhttps://github.com/nitlang/nit/blob/master/examples/rosettacode$(IMPLEMENTATION): Code of the module, excluding the boilerplate comments (shebang and copyright) and the# SEE:line.$(OUT): The output, if meaningful. Usually, the content of the file found intests/sav. If you don’t include the output, the whole{{out}}… part should be skipped.
Example: http://rosettacode.org/mw/index.php?title=Align_columns&diff=prev&oldid=247642
Notes:
- Entries must be ordered by language name.
- If you are not the author of the pull request that introduced the example in this repository, he/she should be mentioned in the commit message.