The Coder's Breakfast - Autres langages - Commentaires2022-11-22T14:44:11+01:00Olivier Croisierurn:md5:7bccc57fa40daaa0bbb47c16f3d66529DotclearCoding challenge ! - error3urn:md5:b3c94e78e83b4554a0b5d6e10563a2a52013-02-24T15:06:32+01:002013-02-24T18:22:41+01:00error3<p>@Olivier pour clojure, j'aurais fait la même remarque pour Haskell.<br />
Je trouve ça complexe à lire... La syntaxe semble inutilement complexe.<br />
Comme tu le dis, je pense que c'est une question d’œil avertis ou pas.<br />
Après, je débute juste en Clojure, j'ai commencé il y a moins d'un mois.<br />
Donc peut-être que je ne fais pas encore de code très lisible.</p>
<p>J'ai essayé d'améliorer un peu la chose</p>
<p><a href="https://gist.github.com/error3/4991344/5c4ae8f91aeeb6825173842908e81fb0d7ab7efb" title="https://gist.github.com/error3/4991344/5c4ae8f91aeeb6825173842908e81fb0d7ab7efb" rel="nofollow">https://gist.github.com/error3/4991...</a></p>
<p>puis</p>
<p><a href="https://gist.github.com/error3/4991344#file-digit-dup-free-numbers-clj" title="https://gist.github.com/error3/4991344#file-digit-dup-free-numbers-clj" rel="nofollow">https://gist.github.com/error3/4991...</a></p>
<p>C'est mieux? :-)</p>Coding challenge ! - Olivier Croisierurn:md5:cc67f89ecc9742775ff5d31f6cf399e72013-02-22T14:35:51+01:002013-02-22T14:56:06+01:00Olivier Croisier<p>Effectivement ma version n'est pas terrible au niveau des perfs, et prend déjà 400ms pour 10^6 nombres. Mais ce n'était pas mon but premier : je suis encore débutant en Haskell.</p>
<p>Si tu es intéressé par les perfs, sur son challenge originel, Cédric a reçu des solutions très ingénieuses et très rapides... Voir : <a href="http://beust.com/weblog/2008/08/28/coding-challenge-wrap-up/" title="http://beust.com/weblog/2008/08/28/coding-challenge-wrap-up/" rel="nofollow">http://beust.com/weblog/2008/08/28/...</a></p>
<br />
<strong>Edit :</strong>
<pre>time ./challenge 1000000000
Nb NR Nums : 5611770
real 9m23.835s
user 9m21.660s
sys 0m1.107s
</pre>
<p>
Bon, presque 10 minutes pour 1 milliard de nombres vérifiés, ça raaaame ^^;
</p>Coding challenge ! - Pierre Laporteurn:md5:69dfba03d597a24b3892779cdcbdd8592013-02-22T14:20:09+01:002013-02-22T14:21:55+01:00Pierre Laporte<p>Salut Olivier</p>
<p>Si tu lances la génération avec un maxmum de 10 chiffres, combien de temps est-ce que cela prend ? Combien de nombres est-ce que tu trouves ?</p>
<p>Voilà une implémentation en Java, un poil plus verbeuse que les vôtres, mais aussi plus rapide : <a href="https://github.com/pingtimeout/challenges/tree/master/non-repeating-numbers-java." title="https://github.com/pingtimeout/challenges/tree/master/non-repeating-numbers-java." rel="nofollow">https://github.com/pingtimeout/chal...</a></p>Coding challenge ! - Olivier Croisierurn:md5:28f9fcd8280848d86b9650f9a792c26e2013-02-20T09:39:31+01:002013-02-20T09:39:41+01:00Olivier Croisier<p>Bien joué pour toutes ces implémentations !</p>
<p>J'arrive à décrypter la version Clojure, mais pfiou, je trouve que la syntaxe est très pénible à lire. Il y a une grosse soupe de parenthèses, accolades et crochets, et il n'est pas simple (pour un oeil non-averti) de distinguer la fonction de chacun.<br />
Je trouve celle d'OCaml plus compréhensible par exemple, et pourtant je n'en ai jamais fait. C'est dommage, je pense que ça ne donne pas aux Javaistes l'envie de se mettre aux langages fonctionnels...</p>Coding challenge ! - error3urn:md5:8de5f6df1c132379e6482243e20aced82013-02-20T00:45:07+01:002013-02-20T09:05:41+01:00error3<p>My clojure implementation on <a href="https://gist.github.com/error3/4991344#file-digit-dup-free-numbers-clj" title="https://gist.github.com/error3/4991344#file-digit-dup-free-numbers-clj" rel="nofollow">https://gist.github.com/error3/4991...</a></p>Coding challenge ! - Alexandreurn:md5:c401079bc7ff67b6cebcd89771c088692013-02-15T18:22:54+01:002013-02-15T19:53:02+01:00Alexandre<p>Sympa ce petit challenge, le voici en Objective Caml (avec Batteries).</p>
<p><code><br />
(* Test whether a number have repeating digits *)<br />
let no_repeat n = let d = String.to_list n in List.length(List.unique d) == List.length d;;</p>
<p>(* Get the max gap *)<br />
let max_gap l = let x = ref 0 in List.max (List.map (fun e -> let r = e - !x in (x := e; r)) l);;</p>
<p>(* solve *)<br />
let () = let range = <a href="http://thecodersbreakfast.net/index.php?post/2013/02/14/1..10000" title="1..10000" rel="nofollow">1..10000</a> in</p>
<pre> let filtered = List.filter no_repeat range in
List.iter (Printf.printf "%d, ") filtered; (* print numbers *)
Printf.printf "Number: %d" (List.length filtered); (* print max number *)
Printf.printf "Max Gap: %d" (max_gap filtered) (* print max gap *)</pre>
<p>;;</p>
<p>Voir le Gist ici: <a href="https://gist.github.com/agrison/4961817" title="https://gist.github.com/agrison/4961817" rel="nofollow">https://gist.github.com/agrison/496...</a></p>Coding challenge ! - Airmanbzhurn:md5:51d6a6d07bce05ba9fcd6e2207fff97f2013-02-14T15:20:06+01:002013-02-14T15:27:54+01:00Airmanbzh<p>function counter($max,$start=0){</p>
<pre> $values = range($start,$max);
$values = array_filter($values,function($value){
$ar_string = str_split($value);
$valid = array_unique($ar_string) == $ar_string;
return $valid;
});
return $values;</pre>
<p>}<br />
counter(10000);</p>
<p>J'ai pas fait le compteur pour le plus grand gap mais l'algo globale est là ^^</p>Coding challenge ! - Clémenturn:md5:bfa93c16d1bab2743d67214e4e29a2342013-02-14T13:57:14+01:002013-02-14T14:09:08+01:00Clément<p>J'aurais globalement le même code sauf pour maxGap où j'aurais utilisé maximumBy à la place d'un fold explicite.</p>Petit guide de programmation illustrée - Thomasurn:md5:064b8d74c64e98381b39704b8b773dce2012-01-12T12:39:44+00:002012-01-12T12:43:05+00:00Thomas<p>Concernant Haskell la traduction en francais de "Learn you a Haskell for great good" est disponible ici:<br />
<a href="http://lyah.haskell.fr/" title="http://lyah.haskell.fr/" rel="nofollow">http://lyah.haskell.fr/</a></p>Petit guide de programmation illustrée - Bastien Jansenurn:md5:105360e82f58b9d267056bc8acad26952011-12-22T08:45:46+00:002011-12-22T11:19:36+00:00Bastien Jansen<p>Il y a aussi le très bon Rails For Zombies, dans la catégorie Ruby. Marrant si on est fan de zombies :)</p>