#551 Le 28/06/2011, à 09:44
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
le truc qui prends 5 lignes pour savoir si tu compare bien deux chaines, si elles font bien la même longueures, et ne sont pas vides, et enfin contiennent les même charactères?
Hors ligne
#552 Le 28/06/2011, à 09:50
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
Ouais, celui-là -__-
Enfin, c'est l'idée générale...
Dernière modification par Dr Le Rouge (Le 28/06/2011, à 09:51)
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#553 Le 28/06/2011, à 11:58
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java
C'est tiré de ça (pour ceux qui sont vraiment anglophobe, mais je pense pas qu'il y en ai sur ce topic, un mec à fait une trad' ici).
Même si je suis pas d'accord avec certains points (exagération), il dit pas que des conneries.
Cela dit, je pense pas qu'il y ai vraiment des écoles qui n'enseignent qu'un seul langage (sinon ça crains vraiment, que ça soit java ou un autre langage).
Pour ceux qui ne connaissent pas Joel Spolsky, c'est lui
Dernière modification par grim7reaper (Le 28/06/2011, à 12:03)
Hors ligne
#554 Le 28/06/2011, à 12:25
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
le truc qui prends 5 lignes pour savoir si tu compare bien deux chaines, si elles font bien la même longueures, et ne sont pas vides, et enfin contiennent les même charactères?
T'veux dire « $ch1 === $ch2 » ? Recompte les lignes
(Ah, il manque le test pour vérifier qu'elles ne sont pas vides, je crois, mais (c'est une vraie question) quel est l'intérêt de vérifier qu'une chaîne n'est pas vide pour la comparer avec une autre ?)
ArkSeth les spec c'est bien
http://standards.freedesktop.org/deskto … 01s06.html
Ah ouais, y a un peu plus de cas, en effet.
En même temps, j'viens de me rendre compte qu'il y avait une méthode launch() dans l'outil que j'utilisais, qui a l'air de servir à ça. Donc j'vais peut-être l'utiliser, en fait, ce sera plus simple ^^
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
#555 Le 28/06/2011, à 13:44
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
@grim: je me demande ce qu'il pense du switch lisp -> python du MIT en 2008
@ArkSeth: ouais mais utiliser trois "=" d'affilés c'est vraiment malsain... ça devrait être le comportement de "=="...
Dernière modification par tshirtman (Le 28/06/2011, à 13:46)
Hors ligne
#556 Le 28/06/2011, à 13:48
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
(où plutôt celui de '=', l'affectation se faisant avec ":=").
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#557 Le 28/06/2011, à 13:57
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
@ArkSeth: ouais mais utiliser trois "=" d'affilés c'est vraiment malsain... ça devrait être le comportement de "=="...
Malsain, j'irais pas jusque là, mais oui, effectivement, il faudrait que ce soit l'opérateur par défaut, et que l'opérateur d'équivalence (et non pas d'égalité) ait un autre symbole. Du genre ~=, p't'être, mais ça ferait râler les gens qui utilisent ~ à la place de ! (il y en a 'me semble )
(T'façon, le caractère pour négationner, ça devrait être ¬, mais dans ce cas on pourrait utiliser aussi ≈, ≤, ≥, ≠ et ce serait largement plus marrant. D'ailleurs, ça pourrait être marrant d'essayer de se faire un langage unicode-based, comme ça, non ?)
Sinon, t'as pas répondu à ma question.
Edit immédiat : j'm'apperçois que je viens de dire une grosse bêtise : l'opérateur d'équivalence, c'est ≡, pas ≈, bien sûr, honte sur moi. Du coup, je sais pas comment on pourrait le représenter en ASCII… _= ? Ça fait moche.)
Dernière modification par ArkSeth (Le 28/06/2011, à 13:58)
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
#558 Le 28/06/2011, à 14:09
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
je suis d'accord pour le langage unicode, ce serait un peu chiant comme barrière à l'entrée, apprendre bien son clavier à fond, ou un paquet de codes, mais tous les fichiers seraient en unicode et la sémantique en sortirai grandie, .
pour ta question, c'était un peu pour en ajouter un de plus, et un peu par ce qu'on sait jamais, en php, ça pourrait poser des problème .
Dernière modification par tshirtman (Le 28/06/2011, à 14:11)
Hors ligne
#559 Le 28/06/2011, à 14:12
- The Uploader
Re : /* Topic des codeurs couche-tard [5] */
Il existe déjà des langages de programmation de la sorte (j'ai vu une fois un langage de programmation tout en japonais, y compris le code) : modifier ce genre de code, non merci! >_<
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#560 Le 28/06/2011, à 14:16
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
oui, mais là il s'agirait de remplacer des conventions propres à l'informatique, imposé par la petite taille des tables ascii et plus anciennes, par d'autres plus solides, internationales et interdisciplinaire (car communes avec la logique).
Après, si c'est pour empirer les choses, avec des variables voir tout un langage dans une langue moins parlé que l'anglais, clairement mauvaise idée, mais ce n'est bien sur pas notre idée ^^.
On pourrait aussi imaginer un langage internationalle, à base de sème, qui seraient remplacés par leur équivalent dans la langue de l'éditeur à l'édition seulement, et le langage lui même n'en privilégeraient aucun.
Bon, la variabilité des grammaires poseraient sans doute des problèmes, mais un langage *traduit* seraient vraiment international pour le coup .
Dernière modification par tshirtman (Le 28/06/2011, à 14:21)
Hors ligne
#561 Le 28/06/2011, à 14:28
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
(T'façon, le caractère pour négationner, ça devrait être ¬, mais dans ce cas on pourrait utiliser aussi ≈, ≤, ≥, ≠ et ce serait largement plus marrant. D'ailleurs, ça pourrait être marrant d'essayer de se faire un langage unicode-based, comme ça, non ?)
Haskell :]
Hors ligne
#562 Le 28/06/2011, à 14:30
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Edit immédiat : j'm'apperçois que je viens de dire une grosse bêtise : l'opérateur d'équivalence, c'est ≡, pas ≈, bien sûr, honte sur moi. Du coup, je sais pas comment on pourrait le représenter en ASCII… _= ? Ça fait moche.)
En fait c’est Unicode qui dit « equivalent to », mais pour moi c’est le symbole de la congruence. Après, des symboles de ce genre il y a en un paquet dans Unicode, mais faudrait voir comment ils sont utilisés en mathématiques se faire une idée…
Hey, tshirtman, t’as pas fini avec tes délires de langage internationalisé ?
Hum, sinon, tu pourrais fusionner mes points sur le TdCT, s’il te plaît ?
Ah, et 34709 est arrivé à 8030 points. T’envisages la fin du blacklisting ?
“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
#563 Le 28/06/2011, à 14:34
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
bah, je peux me déblacklister, mais je ne compte pas revenir ^^.
edit, je fusionne tes points sur le tdct, mais je vois que tu as des points dans le compte à 10 jours, ton clone aurait pas posté, par le plus grand des hazards? si oui c'est de la triche...
Dernière modification par tshirtman (Le 28/06/2011, à 14:39)
Hors ligne
#564 Le 28/06/2011, à 14:46
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
Sur le principe, je pense qu'on pourrait reprendre la syntaxe Python (ça fera plaisir à certains ^^), mais avec un typage statique. Pour l'accès clavier, il y aurait moyen d'accéder quand même aux opérateurs en utilisant plutôt des noms de fonctions, du genre :
def multiplication(int entier1, int entier2) as entier1 × entier2:
code ici
qui permettrait d'utiliser aussi bien la syntaxe multiplication(x, y) que x × y, avec une bibliothèque standard incluant tous les opérateurs mathématiques de base, au moins.
Le principe serait du même ordre en objet, en supposant qu'on choisit par exemple la flèche vers la droite pour accéder à un attribut ou à une méthode de l'objet :
def elem(Object obj, String propid) as obj→propid:
code ici
qui renverrait la propriété de l'objet.
Bon, pour les deux exemples en questions, j'peux évidemment pas donner le code dans le langage en question, vu que ce seraient du code natif de fonctions inclues dans la bibliothèque standard.
Pour les opérations à plus de deux opérandes, ça ferait un truc du même style :
def a_peu_pres_egal(float f1, float f2, float gap) as f1 ≈ f2 ± gap:
return f1 ∈ [f2-gap, f2+gap]
Ou quelque chose de ce genre.
Mais du coup, si on permet les deux, il faudrait rajouter deux options de « compilation » qui permettraient de générer l'une un code source n'utilisant que les noms de fonctions, et l'autre un code source n'utilisant, à chaque fois que c'est possible, que les symboles unicodes.
Par contre, pour les trucs qui ne sont pas des fonctions, genre les boucles, j'vois pas comment faire bien, mais ce serait quand même la classe de faire un for each avec
∀ x ∈ {1, 2, 3, 5, 7, 10}:
traitement ici
Hmm, bon.
Haskell :]
Ouais, j'regarderai ça, un jour… mais bon, c'est du fonctionnel pur, non ? L'objet, c'est pas mal non plus
En fait c’est Unicode qui dit « equivalent to », mais pour moi c’est le symbole de la congruence. Après, des symboles de ce genre il y a en un paquet dans Unicode, mais faudrait voir comment ils sont utilisés en mathématiques se faire une idée…
Je l'ai effectivement vu comme le symbole de la congruence, mais la congruence est assez représentative des relations d'équivalences, je trouve.
Le Rouge tranchera ^^
edit, je fusionne tes points sur le tdct, mais je vois que tu as des points dans le compte à 10 jours, ton clone aurait pas posté, par le plus grand des hazards? si oui c'est de la triche...
Le faux-Pylade a posté contre la volonté du vrai, lorsque c'était un petit plaisantin qui lui faisait une mauvaise blague. La demande de supprimer les points en question était formulée avec la demande de fusionnage, au début, mais il a du se lasser ^^
Dernière modification par ArkSeth (Le 28/06/2011, à 14:48)
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
#565 Le 28/06/2011, à 14:46
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Mon clone a marqué exactement cinq points. Je le jure. Tu peux demander à n@ny.
“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
#566 Le 28/06/2011, à 14:53
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Par contre, pour les trucs qui ne sont pas des fonctions, genre les boucles, j'vois pas comment faire bien, mais ce serait quand même la classe de faire un for each avec
∀ x ∈ {1, 2, 3, 5, 7, 10}: traitement ici
Je proteste, ce n’est pas du tout l’usage mathématique de ce symbole.
Sinon, pourquoi ne pas utiliser la syntaxe de surcharge du C++, par exemple ?
(Je sais, Tshirtman a une dent contre le C++…)
“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
#567 Le 28/06/2011, à 14:56
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
Au niveau du symbole d'équivalence, c'est une question de pays :
- Monde anglo-saxon : équivalence logique '≡'
- En France : équivalence logique '<=>'
Genre :
"P et Q sont équivalents" : 'P <=> Q'
"P and Q are equivalent" : 'P ≡ Q'
T'façon on s'en fout, le contexte suffit en général ^^ Dans le même genre, l'implication ('=>' en France) peut s'écrire sous la forme d'une flèche simple ('→'). Salauds d'Anglais
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#568 Le 28/06/2011, à 15:06
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
Ouais, mais ce n'est pas à cet équivalent-là que je pensais
Le ⇔ est un cas particulier d'une relation d'équivalence appliqué aux propositions logiques (deux propositions sont considérées comme équivalentes quand elles sont systématiquement soit vraie, soit fausse au même moment l'une que l'autre).
Là, je parlais de l'équivalence en général, au sens « machin est équivalent à truc s'il lui égal modulo ce qui ne nous intéresse pas ». D'où la référence aux congruences, qui utilisent le principe des classes d'équivalences.
Mais en fait, dans le calcul courant, on utilise aussi parfois le = comme symbole d'équivalence (pour les fractions simplifiables, par exemple, 2⁄2 a la même valeur que 1, mais ne représente pas la même chose). Donc bon, c'est à fixer, quoi ^^
Je proteste, ce n’est pas du tout l’usage mathématique de ce symbole.
Pas faux, en effet. Mais ce serait classe quand même.
(En même temps, j'vois pas comment appliquer le vrai usage mathématique en programmation, donc bon, j'pense pas que ça pose soucis… sauf si j'ai pas pensé à un truc ?)
Sinon, pourquoi ne pas utiliser la syntaxe de surcharge du C++, par exemple ?
Bah je connais absolument pas le C++, donc j'peux pas trop me prononcer…
Mais pour un langage orienté sémantique, ça me paraît indispensable d'utiliser l'indentation comme en Python, d'où le fait que j'ai pensé à Python (ce qui ne répond pas du tout à la question posée, j'en conviens).
Dernière modification par ArkSeth (Le 28/06/2011, à 15:13)
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
#569 Le 28/06/2011, à 15:18
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
Ah, oké.
Pour les classes d'équivalence, il n'y a pas de règle générale. Par exemple dire que deux fonctions sont "équivalentes" (en terme d'ordre de grandeur), ça s'écrit avec un '~'. Si elles sont dans la même classe au sens de l'intégrale de Lebesgue (en l'occurrence L2), ça s'écrit 'f=g p.p', où p.p signifie...Presque Partout
En prepa, quand on faisait des trucs bien formels, on définissait une relation d'équivalence R, puis on disait P R Q (en général, on définissait R avec un R curviligne pour éviter les problèmes).
edit : fôtes
Dernière modification par Dr Le Rouge (Le 28/06/2011, à 15:21)
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#570 Le 28/06/2011, à 15:20
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
Mon clone a marqué exactement cinq points. Je le jure. Tu peux demander à n@ny.
accordé, c'est juste l'info que je voulais
Hors ligne
#571 Le 28/06/2011, à 15:23
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
En prepa, quand on faisait des trucs bien formels, on définissait une relation d'équivalence R, puis on disait P R Q (en général, on définissait R avec un R curviligne pour éviter les problèmes).
Ouais, t'façon, la relation d'équivalence sera à redéfinir au cas par cas (du genre, à ± machin pour les équivalences entre flottants, et selon des règles plus ou moins arbitraires pour les objets).
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
#572 Le 28/06/2011, à 15:29
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
Sur le principe, je pense qu'on pourrait reprendre la syntaxe Python (ça fera plaisir à certains ^^), mais avec un typage statique.
En quel honneur? il n'y a aucun problème avec le typage dynamique
Pour l'accès clavier, il y aurait moyen d'accéder quand même aux opérateurs en utilisant plutôt des noms de fonctions, du genre :
def multiplication(int entier1, int entier2) as entier1 × entier2: code ici
qui permettrait d'utiliser aussi bien la syntaxe multiplication(x, y) que x × y, avec une bibliothèque standard incluant tous les opérateurs mathématiques de base, au moins.
Je ne suis pas d'accord, dans un tel langage, c'est le symbole, par ce que c'est sa place, et pas d'équivalence -> there should be only one way to do it!
Le principe serait du même ordre en objet, en supposant qu'on choisit par exemple la flèche vers la droite pour accéder à un attribut ou à une méthode de l'objet :
def elem(Object obj, String propid) as obj→propid: code ici
qui renverrait la propriété de l'objet.
Bon, pour les deux exemples en questions, j'peux évidemment pas donner le code dans le langage en question, vu que ce seraient du code natif de fonctions inclues dans la bibliothèque standard.Pour les opérations à plus de deux opérandes, ça ferait un truc du même style :
def a_peu_pres_egal(float f1, float f2, float gap) as f1 ≈ f2 ± gap: return f1 ∈ [f2-gap, f2+gap]
Ou quelque chose de ce genre.
ouais, enfin, abs(f1 - f2) < gap, ça le fait aussi
Mais du coup, si on permet les deux, il faudrait rajouter deux options de « compilation » qui permettraient de générer l'une un code source n'utilisant que les noms de fonctions, et l'autre un code source n'utilisant, à chaque fois que c'est possible, que les symboles unicodes.
Par contre, pour les trucs qui ne sont pas des fonctions, genre les boucles, j'vois pas comment faire bien, mais ce serait quand même la classe de faire un for each avec
∀ x ∈ {1, 2, 3, 5, 7, 10}: traitement ici
pas faut, mais ça flirt un peu avec le lambda calcul, niveau lisibilité ^^
Le faux-Pylade a posté contre la volonté du vrai, lorsque c'était un petit plaisantin qui lui faisait une mauvaise blague. La demande de supprimer les points en question était formulée avec la demande de fusionnage, au début, mais il a du se lasser ^^
témoignage accepté
Hors ligne
#573 Le 28/06/2011, à 15:48
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
Pendant qu'on parle de maths : ce qui m'attend :3 (Specialisation "Discrete Mathematics and Theoretical Computer Science" of course )
Z'êtes jaloux hein ?
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#574 Le 28/06/2011, à 15:50
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
nope
si je veux ça, je pointe mon navigateur là http://ocw.mit.edu/courses/mathematics/ ou là http://ocw.mit.edu/courses/electrical-e … r-science/
(j'espère trouver le temps un jour...)
(tiens le cours d'intro pour le cours dont parle le mec dans l'article de grim plus haut)
http://ocw.mit.edu/courses/electrical-e … -iap-2005/
Dernière modification par tshirtman (Le 28/06/2011, à 15:53)
Hors ligne
#575 Le 28/06/2011, à 15:51
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
En quel honneur? il n'y a aucun problème avec le typage dynamique
Bah si on voit l'aspect mathématique des choses, quand on définit une fonction, il faut commencer par donner son domaine de définition.
Puis je voyais ça sur la logique du Java, où tu peux définir deux fonctions qui aient le même nom, mais des paramètres différents.
Du genre, multiplier deux entiers et multiplier deux matrices, ce n'est pas tout à fait la même chose, même si on dit multiplier dans les deux cas.
Et la fameuse relation d'équivalence en question sera différente selon le type des objets auxquels on l'applique.
J'avoue que mon expérience en matière de surcharge d'opérateurs est assez limitée, mais j'ai du mal à voir comment on peut redéfinir proprement le fonctionnement selon le type, si on n'a le type qu'au moment de l'exécution.
Je ne suis pas d'accord, dans un tel langage, c'est le symbole, par ce que c'est sa place, et pas d'équivalence -> there should be only one way to do it!
Ouais, ça se tient aussi, en effet, mais dans ce cas, il faut donner un statut différent à une fonction et à un opérateur, avec deux manières différentes de les définir (parce que je pars du principe qu'un tel langage serait extensible, et donc donnerait la possibilité de définir aussi de nouveaux opérateurs).
Ma vision des choses avait l'avantage, outre d'offrir quand même une possibilité de coder aux malheureux ne disposant pas d'une vraie dispo clavier (genre les utilisateurs de Windows, par exemple) de n'offrir qu'une seule manière de gérer les deux.
ouais, enfin, abs(f1 - f2) < gap, ça le fait aussi
En effet, mais j'avais envie de faire un code avec des symboles unicodes ^^
(Et j'voulais en profiter aussi pour noter le fait que dans un tel langage, [] et {} devraient correspondre respectivement aux intervalles et aux ensembles).
pas faut, mais ça flirt un peu avec le lambda calcul, niveau lisibilité ^^
[inculte]Le quoi ?[/inculte]
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