Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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? big_smile

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...

1305742540.jpg

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] */

Joel Spolsky a écrit :

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] */

tshirtman a écrit :

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? big_smile

T'veux dire « $ch1 === $ch2 » ? Recompte les lignes tongue

(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 ?)

Kanor a écrit :

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 ^^

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 big_smile

@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 ":=").

tongue


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] */

tshirtman a écrit :

@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 yikes)

(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)

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, smile.

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 tongue.

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 smile.

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] */

ArkSeth a écrit :

(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] */

ArkSeth a écrit :

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é ? tongue
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.

grim7reaper a écrit :

Ouais, j'regarderai ça, un jour… mais bon, c'est du fonctionnel pur, non ? L'objet, c'est pas mal non plus tongue

Πυλάδης a écrit :

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 ^^

tshirtman a écrit :

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)

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] */

ArkSeth a écrit :

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 yikes


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 wink

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 ^^

Πυλάδης a écrit :

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 ?)

Πυλάδης a écrit :

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)

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 cool

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 hmm

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] */

Πυλάδης a écrit :

Mon clone a marqué exactement cinq points. Je le jure. Tu peux demander à n@ny.

accordé, c'est juste l'info que je voulais wink

Hors ligne

#571 Le 28/06/2011, à 15:23

Elzen

Re : /* Topic des codeurs couche-tard [5] */

Le Rouge a écrit :

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).

Hors ligne

#572 Le 28/06/2011, à 15:29

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

ArkSeth a écrit :

Sur le principe, je pense qu'on pourrait reprendre la syntaxe Python (ça fera plaisir à certains ^^), mais avec un typage statique.

En quel honneur? big_smile il n'y a aucun problème avec le typage dynamique tongue

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 tongue

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é smile

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 cool )
Z'êtes jaloux hein ? big_smile


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 tongue

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] */

tshirtman a écrit :

En quel honneur? big_smile il n'y a aucun problème avec le typage dynamique tongue

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.

tshirtman a écrit :

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.

tshirtman a écrit :

ouais, enfin, abs(f1 - f2) < gap, ça le fait aussi tongue

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).

tshirtman a écrit :

pas faut, mais ça flirt un peu avec le lambda calcul, niveau lisibilité ^^

[inculte]Le quoi ?[/inculte]

Hors ligne