1380

Oui, un langage mixte impératif/fonctionnel est forcément redondant.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1381

Je ne sais pas si c'est moi qui en parlais, mais c'est en effet le cas.
Pour moi, la lisibilité et la prédictibilité du code sont des critères vraiment importants, le fait d'avoir quinze syntaxes différentes pour la même chose n'est pas terribles quand on se penche sur le code d'autrui.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

1382

Mais justement, souvent, c'est le sucre syntaxique qui améliore la lisibilité qui crée une redondance. Par exemple, while en C est entièrement redondant, on peut tout faire avec for (même dowhile est en principe redondant, mais la transformation est moins triviale), mais while (condition) est quand-même plus lisible que for (;condition;).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1383

pencil

Si on enlève toutes les redondances, ça donne le lambda calcul (seulement 3 éléments syntaxiques qui permettent d'exprimer tout le reste), ou alors juste l'instruction mov sur x86, puisqu'elle est turing complete à elle seule, etc...
Mais quelque chose me dit que Flanker préfère quand même les langages quelques peu redondants à ceux là grin
So much code to write, so little time.

1384

Oui, d'ailleurs, même if est trivialement redondant en C:
if (condition) {
  blablabla;
}

while (condition) {
  blablabla;
  break;
}

for (;condition;) {
  blablabla;
  break;
}
smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1385

toujours dans le Zen of Python :
« Although practicality beats purity. »
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

1386

chinois
So much code to write, so little time.

1387

Dans le genre syntaxes multiples on est pas mal en C#…

Rapport aux Delegates / Lambdas:private static int Compare(int x, int y) { return z - y; } // Syntaxe C# 1.0 + Génériques (C# 2.0) public static void SortArray1(int[] array) { Array.Sort(array, new Comparison<int>(Compare)); // Les génériques n'existent pas en C# 1.0 mais la syntaxe "new DelegateType()" est obligatoire. Bref, j'ai pas eu envie de chercher un meilleur exemple ;p } // C# 2.0 public static void SortArray2(int[] array) { Array.Sort(array, Compare); // Plus obligé d'utiliser la syntaxe "new DelegateType()" } // C# 2.0 public static void SortArray3(int[] array) { Array.Sort(array, (Comparison<int>)Compare); // Du coup on peut aussi forcer le typage sans utiliser la syntaxe "new DelegateType()" même si ça sert souvent à rien. } // C# 2.0 (Syntaxe totalement obsolète mais totalement valide) public static void SortArray4(int[] array) { Array.Sort(array, delegate (int x, int y) { return x - y; }); } // C# 3.0 public static void SortArray5(int[] array) { Array.Sort(array, (x, y) => x - y); } // C# 6.0 (Maximum concision) public static void SortArray6(int[] array) => Array.Sort(array, (x, y) => x - y);
Et pour les propriétés on est pas mal aussi grin// C# 1.0 private int _a; public int A { get { return _a; } set { _a = value; } } private readonly int _b; public int B { get { return _b; } } public int C { get { return 3; } } // C# 3.0 public int A { get; set; } private readonly int _b; public int B { get { return _b; } } public int C { get { return 3; } } // C# 6.0 public int A { get; set; } public int B { get; } public int C => 3;
Malgré tout je pense que ça ne sera jamais pire qu'en C++, mais c'est là qu'on voit qu'en évoluant, les langages se tapent un petit paquet de vielles casseroles. Je suis pas sûr que ce soit évitable de toutes façons.
Je pense que le plus drôle à ce niveau c'est de regarder JavaScript. La future version est magnifique de fonctionnalités, mais une grosse grosse partie c'est du sucre syntaxique sur des structures chiantes à créer.
(Sinon, j'ai trouvé la présentation sur les défauts de C++ en ./1369 très bien tongue. C'est évidemment un peu trollatoire, mais ça soulève beaucoup de vrais points.)

./1382 > Généralement, j'ai tendance à utiliser plus while (true) que while (condition) quand je code… La plupart du temps quand j'utilise un while, c'est une boucle aux conditions de sortie non triviales donc ça rentre bien dans aucune case. (goto programming FTW !)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1388

GoldenCrystal (./1387) :
// C# 6.0 (Maximum concision)public static void SortArray6(int[] array) => Array.Sort(array, (x, y) => x - y);
C'est peut-être juste un manque d'habitude mais je trouve ça vraiment vilain cheeky

1389

Moi je trouve ça plutôt élégant (mais peut-être parce que j'aime ce genre de notation fonctionnelles )
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

1390

GoldenCrystal (./1387) :
// C# 6.0 (Maximum concision)public static void SortArray6(int[] array) => Array.Sort(array, (x, y) => x - y);

Ca gère bien les overflow sur les entiers le c# ? cheeky

1391

Ça dépend des options de compilation et de comment tu les déclares tes variables (les modifieurs checked et unchecked forcent ou annulent le contrôle).
Mais par défaut il me semble bien que ça n'est pas contrôlé.
avatar

1392

Certainement pas d'une manière qui rendrait correcte cette fonction de comparaison foireuse.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1393

Heu ? Et pourquoi donc ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1394

Parce que C# vient de Microsoft, il est donc impossible que quoi qui vienne de C# soit techniquement correct.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

1395

GoldenCrystal (./1393) :
Heu ? Et pourquoi donc ?
int x = 2000000000;
int y = -2000000000;
x - y == -294967296 en arithmétique 32 bits, donc x < y pour ta fonction de comparaison pourrie.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1396

N'est-ce pas pour ça que PpHd questionnait sur les overflows ?
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

1397

Oui, exactement. (Il faut dire que je n'ai pas vu tout de suite l'erreur, c'est la remarque de PpHd qui m'a alerté. Mais en la lisant, j'ai tout de suite compris.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1398

Sauf que si tu sais que les valeurs possibles sont entre -100 et 100, c'est correct.
avatar

1399

C'est bien de l'indiquer quelque part, dans ce cas (ou même de mettre une assertion) embarrassed

1400

Ou juste laisse l'utilisateur se demerder bordel de merde embarrassed



grin
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

1401

C'est un bug classique des fonctions de tris grin

1402

Oh, il y a plein de bugs à la con avec les débordements sad
Typiquement, j'en ai rencontré un dans le cadre du boulot à cause de l'utilisation d'une date virtuelle pour indiquer qu'il n'y avait pas de fin... l'an 8888 passe très bien en timestamp unix dans un environnement 64 bits, mais renvoie de la merde en 32 bits. Ca crée des surprises lors des changements d'environnements cheeky
avatar

1403

Ça t'apprendra à vouloir gagner un point PenPen embarrassed
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1404

grin

1405

./1395 > Ah oui, bien vu grin Avec un exemple c'est mieux, merci ^^
En plus je suis con, j'ai vérifié mentalement avec INT_MIN et INT_MAX et je me suis tarté tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1406

Une bonne habitude à prendre pour les fonctions de comparaison est de toujours renvoyer -1, 0 ou 1, ça enlève la tentation de prendre ce genre de raccourci foireux.

Mais pour revenir au sujet du topic, la solution C++ avec des surcharges séparées pour operator< et operator== (les algorithmes génériques n'ont besoin que de ces 2) évite ce problème. tongue De plus, avoir toute la palette des opérateurs <, <=, ==, >=, > et != donne des comparaisons plus rapides que la fonction de comparaison générique. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1407

(Kevin doit m'adorer pour le raccourci Ctrl-F grin)

1408

(F, comme Folco ?)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1409

(!contrôle Folco)

1410

Kevin Kofler (./1406) :
Une bonne habitude à prendre pour les fonctions de comparaison est de toujours renvoyer -1, 0 ou 1, ça enlève la tentation de prendre ce genre de raccourci foireux.
Bah, c'est ce qui se passe en pratique car les comparateurs pour les types basiques sont déjà écrits ^^
avoir toute la palette des opérateurs <, <=, ==, >=, > et != donne des comparaisons plus rapides que la fonction de comparaison générique. smile
Définit "Plus rapide" ? grin
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes