Page 1 sur 1

[Mini-Challenge #14] : SortVoid

Message non luPosté: 11 Mar 2015, 19:56
de Adriweb
Retour aux mini-challenges avec cette fois-ci une problème qui devrait faire réfléchir quelque peu :)

Le but : à partir d'une liste (non-ordonée) contenant plusieurs nombres ainsi que plusieurs élément void (_), donc par exemple : {42, -9001, _, 5, _, _, 101}, faire en sorte que le programme/fonction retourne la liste (enfin, une copie de la liste, pas besoin de modifier la variable passée en argument si c'est le cas) avec les éléments void au début, mais sans changer l'ordre des autres éléments. On aurait donc, ici : {_, _, _, 42, -9001, 5, 101}

Comme d'habitude, le défi est de faire ceci avec le code le plus court possible !

Bonne chance :)

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 11 Mar 2015, 20:15
de Wistaro
Waw.

Bon courage !

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 11 Mar 2015, 20:49
de Adriweb
J'ai une solution en 54 caractères (pour le corps du programme) :)
(composée de : 1 assignation et 5 appels de fonctions dont 4 distincts)

Edit : 53 maintenant

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 13 Mar 2015, 00:25
de Excale
52 :p

Faut compter comment aussi? Un retour à la ligne c'est 0 ou 1? Sinon j'ai 51.

J'ai 53 avec une ligne aussi.

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 13 Mar 2015, 01:09
de Bisam
Euh, vous faites comment pour avoir autant ?
J'ai 46 caractères !

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 13 Mar 2015, 01:19
de Adriweb
J'ai maintenant 51 caractères....
Code: Tout sélectionner
Define sortvoid(l)=
Prgm
Disp augment(seq(_,n,1,dim(l)-count(l)),delVoid(l))
EndPrgm


Si j'enlève le 'Disp ' ça fait bien 46, mais bon :P

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 13 Mar 2015, 01:38
de Bisam
Tu ne réponds pas à la question ! On veut une fonction qui renvoie le résultat... et non un programme qui affiche !

Enfin, j'ai presque la même chose :
Code: Tout sélectionner
Define sortvoid(l)=
Func
augment(_+newlist(dim(l)-count(l)),delvoid(l))
EndFunc

et je suis vraiment déçu que ma version ne fasse pas gagner un seul caractère !!

Re: [Mini-Challenge #14] : SortVoid

Message non luPosté: 13 Mar 2015, 01:54
de Adriweb
Ah, oui, retourne ou affiche, je voulais dire.
Enfin bref, du coup on a en effet presque pareil.... mais j'avais oublié le coup du newlist, c'est pas bête :)