#501 Le 27/12/2010, à 20:01
- Elzen
Re : /* Topic des codeurs couche-tard [3] */
Fortement déconseillé (dans n'importe quel langage) à cause des problèmes d'arrondis induits pas la représentation interne des des flottants (des fois ça fonctionne, des fois pas donc c'est pas portable).
Même combat pour le test de différence.
Logique.
Ceci dit, dans certains cas, c'est bien une égalité réelle que tu veux tester (de la même façon que tu peux vouloir tester une égalité entre deux pointeurs ou, en java, tester un == sur deux objets plutôt qu'un .equals()).
Donc effectivement, normal que ce soit une option à rajouter si t'en as besoin et pas un truc requis.
Et si tu utilisais ça à la place de Yacc ? Il semblerait que tu ne sois pas obligé de réécrire le code…
Mon yacc est déjà celui fourni par bison, mais n'empêche que pour ma fac, c'est en yacc qu'on doit faire les TP et pas en bison (et ça ne change rien pour flex, t'façon)
Au pire, il y a moyen de « berner le warning ». C'est dommage de ce priver d'une bonne option pour ça…
Disons que bon, j'ai peut-être pas encore un niveau de C suffisant pour mettre tous les warnings à fond non plus…
Faire un truc -pedanticproof et presque -Wallproof (il reste deux warnings de variables non utilisées dues à flex dont je n'arrive pas à me débarrasser), c'est déjà un bon début, quand c'est pour un simple TP et que tu dois manipuler des biblis externes que tu ne connais pas encore super bien.
Soyez patients, si je continue le C, je vais probablement finir par rajouter des options
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#502 Le 27/12/2010, à 20:12
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
grim7reaper a écrit :Fortement déconseillé (dans n'importe quel langage) à cause des problèmes d'arrondis induits pas la représentation interne des des flottants (des fois ça fonctionne, des fois pas donc c'est pas portable).
Même combat pour le test de différence.Logique.
Ceci dit, dans certains cas, c'est bien une égalité réelle que tu veux tester (de la même façon que tu peux vouloir tester une égalité entre deux pointeurs ou, en java, tester un == sur deux objets plutôt qu'un .equals()).
Donc effectivement, normal que ce soit une option à rajouter si t'en as besoin et pas un truc requis.
Oui enfin, tu n'auras jamais de résultat bizarre en testant l'égalité de deux adresses alors qu'avec les flottants ça dépends de facteurs externe (codage des nombres, architecture,…)
Disons que bon, j'ai peut-être pas encore un niveau de C suffisant pour mettre tous les warnings à fond non plus…
Je me dis qu'il vaut mieux s'habituer à être exigeant dès le début plutôt que d'avoir à changer de mauvaises habitudes par le suite. Mais c'est toi qui voit .
Sinon, tu as vu mon « évaluation » des points pour le CLFB ?
Dernière modification par grim7reaper (Le 27/12/2010, à 20:14)
Hors ligne
#503 Le 27/12/2010, à 20:23
- Elzen
Re : /* Topic des codeurs couche-tard [3] */
Je me dis qu'il vaut mieux s'habituer à être exigeant dès le début plutôt que d'avoir à changer de mauvaises habitudes par le suite. Mais c'est toi qui voit
.
En théorie, j'suis d'accord, en pratique je sais que tu prends quand même toujours des mauvaises habitudes, donc bon ^^
Se faire de bonnes règles de codage est un truc qu'on ne peut faire que quand on a bien compris comment fonctionnait le langage, ce qui dans mon cas et pour le C n'est pas encore assuré.
Sinon, tu as vu mon « évaluation » des points pour le CLFB ?
Ouaip, mais j'attendais d'autres réactions pour donner mon avis.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#504 Le 27/12/2010, à 20:35
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Je vois ça plutôt dans l'autre sens.
Quand tu connais peu le langage, tu as plus de chance de faire des « mauvaises » choses donc mieux vaut régler le compilo pour qu'il te le dise et te permette de te recadrer.
En ce moment j'apprend Haskell, et bien je compile en -Wall.
Dernière modification par grim7reaper (Le 27/12/2010, à 20:35)
Hors ligne
#505 Le 27/12/2010, à 20:36
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Je suis plutôt d'accord ; ça a été salutaire, pour moi… ^^
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#506 Le 27/12/2010, à 20:43
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Bon ma fonction pour « découper » l'entrée utilisateur semble fonctionner.
À partir de
filename\ with\ spaces +> yet\ another\ filename\ with\ spaces
j'obtient
["filename with spaces","+>","yet another filename with spaces"]
Le code en question
getUserArgs :: String -> [String]
getUserArgs input = getUserArgs' tokens False []
where tokens = words input
getUserArgs' :: [String] -> Bool -> [String] -> [String]
getUserArgs' [] _ args = reverse args
getUserArgs' (x:xs) False args = getUserArgs' xs (last x == '\\') (x : args)
getUserArgs' (x:xs) True args = getUserArgs' xs (last x == '\\') newArgs
where newArgs = (((init.head) args) ++ newX) : tail args
newX = " " ++ x
Faudra que j'ajoute un commentaire en tête de fonction pour définir le rôle des arguments.
Dernière modification par grim7reaper (Le 27/12/2010, à 20:43)
Hors ligne
#507 Le 27/12/2010, à 22:50
- helly
Re : /* Topic des codeurs couche-tard [3] */
Jcode pas, mais je BNise !
Faut que je re-avance clfb, je suis en train de retravailler haskell, j'oublie le projet .
Dernière modification par helly (Le 27/12/2010, à 22:50)
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#508 Le 27/12/2010, à 22:53
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Bah fait le en Haskell comme moi, tu feras d'une bière deux coups
Hors ligne
#509 Le 28/12/2010, à 00:21
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Bon, en fait il faut que je revoie ma fonction getUserArgs (elle était trop simple pour être juste…) et j'ai commencé à étudier la complétion niveau commande (c'est pas gagné ^_^).
BN World !
Dernière modification par grim7reaper (Le 28/12/2010, à 00:21)
Hors ligne
#510 Le 28/12/2010, à 00:40
- Elzen
Re : /* Topic des codeurs couche-tard [3] */
T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#511 Le 28/12/2010, à 00:46
- \\Ouranos//
Re : /* Topic des codeurs couche-tard [3] */
Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.
Hors ligne
#512 Le 28/12/2010, à 00:54
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)
J'ai déjà la complétion au niveau des noms de fichiers, je voulais voir si je pouvais aussi l'avoir pour les opérateurs.
Mais c'est vrai que vu la longueur des opérateurs c'est peut-être pas la peine, je verrais…
En tout cas, j'en fait pas une priorité.
Bon bah finalement je ne suis pas couché donc je vais attendre minuit pour les points .
Dernière modification par grim7reaper (Le 28/12/2010, à 01:03)
Hors ligne
#513 Le 28/12/2010, à 01:09
- compte supprimé
Re : /* Topic des codeurs couche-tard [3] */
Bn;
#514 Le 28/12/2010, à 01:27
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
ArkSeth a écrit :T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)J'ai déjà la complétion au niveau des noms de fichiers, je voulais voir si je pouvais aussi l'avoir pour les opérateurs.
Mais c'est vrai que vu la longueur des opérateurs c'est peut-être pas la peine, je verrais…
En tout cas, j'en fait pas une priorité.
[…]
J'ai vraiment du mal à comprendre l'intérêt, étant donné que comme les commandes font au maximum deux caractères qu'il y a suffisamment peu de caractères en jeu, l'autocomplétion des commandes est un peu impossible.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#515 Le 28/12/2010, à 02:18
- gnuuat
Re : /* Topic des codeurs couche-tard [3] */
<?php
$mots = array (
'adjectif' => 'Bonne',
'nom' => 'nuit',
'ponctuation' => '.'
);
echo "{$mots['adjectif']} {$mots['nom']}{$mots['ponctuation']}";
Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !
Hors ligne
#516 Le 28/12/2010, à 03:08
- Кຼزດ
Re : /* Topic des codeurs couche-tard [3] */
plop
dou
Hors ligne
#517 Le 28/12/2010, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores totaux, depuis le début :
1) 2171 nesthib
2) 2042 samuncle
3) 1748 Pylade
4) 1379 Кຼزດ
5) 1048 cm-t
6) 1036+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 762 \\Ouranos//
8) 725 helly
9) 716 Р☢w ! ✰ :mad: ✰ (эй !)
10) 522 gnuuat
11) 497 Lagierl
12) 348 tshirtman
13) 196 Askelon
14) 185 Kanor
15) 172 nathéo
16) 121 ǤƦƯƝƬ
17) 93 petifrancais
18) 88 The Uploader
19) 81 Rolinh
20) 78 edge_one
20) 78 pierguiard
22) 70 gulp
23) 59 kamui57
24) 37 ilagas
25) 32 Le Rouge
26) 30 keny
27) 25 GentooUser
27) 25 Morgiver
29) 24 ไ୦บเઢ'
30) 22 xapantu
31) 21 Steap
32) 20 CROWD
33) 18 Ph3nix_
34) 15 timsy
35) 14 kouskous
36) 12 stratoboy
36) 12 sailing
36) 12 sakul
39) 11 alexises
39) 11 Crocoii
41) 10 Toineo
41) 10 NutMotion
41) 10 pseudovingtcinqcaracteres
41) 10 pfriedZ
41) 10 d10g3n
46) 8 Mornagest
47) 7 Vista
48) 6 Zeibux
48) 6 ubuntlin
48) 6 asma.geek
51) 5 tendances-tdct
51) 5 kinouchou
53) 4 danychou56
53) 4 Neros
53) 4 Biaise
53) 4 totoflute
53) 4 pinballyoda ㋛
58) 3 Revan26914
59) 2 SoJaS
59) 2 ceric
61) 1 geenux
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#518 Le 28/12/2010, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores de la période en cours :
1) 194 nesthib
2) 162 Кຼزດ
3) 161 Pylade
4) 152 samuncle
5) 149 grim7reaper
6) 95 gnuuat
7) 89 Lagierl
8) 73 Rolinh
9) 69 helly
10) 63 \\Ouranos//
11) 55 tshirtman
12) 41 cm-t
13) 29 The Uploader
14) 25 Р☢w ! ✰ :mad: ✰ (эй !)
15) 18 Kanor
16) 16 Steap
17) 12 sakul
18) 10 pierguiard
18) 10 d10g3n
20) 5 kinouchou
20) 5 Morgiver
22) 3 xapantu
22) 3 Revan26914
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#519 Le 28/12/2010, à 11:16
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Hello World !
l'autocomplétion des commandes est un peu impossible.
Non, c'est possible. L'intérêt est proche de zéro certes mais je ne vois pas en quoi c'est impossible…
Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
S'il y a déjà un nom de fichier tu proposes un opérateur ou un nombre positif (voir mieux ).
S'il y a un nom de fichier suivi d'un opérateur binaire, tu proposes des noms de fichiers.
Voilà, en gros, comment pourrai fonctionner le truc, donc je ne vois pas ce qui est impossible là-dedans (même si, certes, l'intérêt n'est pas transcendant).
Hors ligne
#520 Le 28/12/2010, à 12:56
- helly
Re : /* Topic des codeurs couche-tard [3] */
Bah fait le en Haskell comme moi, tu feras d'une bière deux coups
T'as juste utilisé le tuto en anglais, rien de plus ?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#521 Le 28/12/2010, à 13:49
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Oui, et encore je ne l'ai pas entièrement lu (bien que je commence à en voir le bout maintenant ).
Pour la complétion et le gestion des types Mime j'utilise aussi la doc des modules kivonbien. Par contre, les docs manquent un peu d'exemple donc en complément je lit aussi des codes sources pour voir comment ont les utilises.
J'évite au maximum Google, mais pour le coup ils sont les seuls à ma connaissance à proposer ce genre de service…
Pour le type Mime j'utilise le binding de la libmagic, magic (dispo dans AUR).
Pour la complétion j'ai laissé tombé le binding de GNU Readline, readline (doc à chier des briques : juste cinq fonctions documentées et un exemple, pour le reste il faut se contenter des prototypes ) au bénéfice d'Haskeline (la doc est pas transcendante, mais au moins les prototypes et les types sont expliqués) qui à le mérite d'être du « pur » Haskell (même s'il est basé sur les transformeurs de monades, chose que je ne connais pas et qui m'a donc donné un peu de fil à retordre, mais maintenant ça fonctionne ^_^).
readline est dispo dans AUR et Haskeline est dispo dans extra.
Dernière modification par grim7reaper (Le 28/12/2010, à 13:52)
Hors ligne
#522 Le 28/12/2010, à 13:57
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
[…]
Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
[…]
Ah, oui, je les avais oublié, ceux-là…
Sinon, OK, tu parles d'une complétion « à la Vim » alors que je parlais d'une complétion « à la Bash », ça explique le malentendu… ^^
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#523 Le 28/12/2010, à 14:06
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
grim7reaper a écrit :[…]
Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
[…]Ah, oui, je les avais oublié, ceux-là…
Sans compter !show warranty et !show copying, vu que j'ai mis mon code sous GPL et que je suis un « bon élève »
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box".
C'est d'ailleurs ça qui explique le
import CLFB.Copyleft
dans mon code ^_^
Sinon, OK, tu parles d'une complétion « à la Vim » alors que je parlais d'une complétion « à la Bash », ça explique le malentendu… ^^
C'est quoi une completion « à la Bash » ?
Je ne vois pas trop la différence là.
Dernière modification par grim7reaper (Le 28/12/2010, à 14:08)
Hors ligne
#524 Le 28/12/2010, à 14:16
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Avec Vim de multiples appuis font défiler les solutions possibles, avec Bash non.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#525 Le 28/12/2010, à 14:18
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Bah là c'est « à la Bash » alors.
Un appui sur « Tab » te donne toute les solutions possibles (selon les contextes que j'ai précédemment cités bien sûr). Pas de navigation dans les propositions comme dans Vim ou zsh.
Dernière modification par grim7reaper (Le 28/12/2010, à 14:19)
Hors ligne