En pratique, il pleut de temps en temps au pays des Bisounours.
Ouais, d’ailleurs, pendant les vacances de fin d’année, j’ai vu un reportage là-dessus sur France 5. « Les Bisounours et le magicroque », que ça s’appelait. Et, franchement, ça faisait très peur…
C'est vrai que ça sonne bizarre, mais c'est souvent le cas en français !
Au subjonctif notamment (moudre est assez drôle par exemple) .
Ça sonne bizarre parce que c’est peu usité.
C’est peu usité parce que ça a toujours été peu usité.
Ça a toujours été peu usité parce qu’il faut être éduqué pour les utiliser, déjà rien que pour avoir une chance d’avoir à les utiliser.
Et comme ça a toujours été peu usité, ça n’a peut-être pas suffisamment été adapté, ça n’a pas subi les modifications phonétiques du reste du français.
C'est d'ailleurs surement pour cette raison que le passé composé remplace si souvent le passé simple
Hmm, peut-être est-ce plutôt que le français se fait encore plus analytique (= découpé) : on préfère composer plusieurs mots fréquents qu’en utiliser un seul plus rare (qui se raréfie donc encore).
ou que les imparfaits du subjonctif soient remplacés par des imparfait de l'indicatif.
On remplace l’imparfait du subjonctif par le présent du subjonctif : on garde le bon mode mais on laisse tomber la concordance des temps.
« Il aurait fallu que je le fasse » au lieu de « il aurait fallu que je le fisse ». (Et jamais *« il aurait fallu que je le faisais » !)
Merci de me l’apprendre ; avec un pseudonyme comme le tien et tes autres commentaires, j’étais persuadé que ça ne pouvait qu’être sérieux et pris au premier degré.
Un commentaire ironique ne termine pas nécessairement une conversation ; au contraire certains commentaires à caractère humoristique peuvent permettent d’apporter de bons arguments et ainsi de poursuivre la conversation. Mon commentaire ne s’adressait donc pas seulement à toi, je ne faisais que rebondir sur cette idée de licence d’un point de vue moins moqueur pour indiquer aux autres lecteurs et notamment à pBpG que la position « ceux qui ne gênent pas MS ne seront pas attaqués » (le groupe « ceux qui ne gênent pas MS » étant, selon les besoins de l’argumentateur, confondus avec « le libre » ou « ceux qui ne font pas d’argent ») ne tient pas puisqu’il faudrait soit que ceux-ci changent (se vendent), soit que MS change (n’attaque plus personne).
Purée, faut faire des explications de texte à chaque commentaire maintenant.
C’est simple (j’ai fait ça quand j’étais jeune, ça fait un moment mais je ne pense pas que ça aie changé) :
— les chèques sont passés dans une machine par un opérateur ;
— l’opérateur indique le montant du chèque (la plupart du temps, on ne lit que le montant en chiffres) ;
— il enfile le chèque dans la machine ;
— le chèque est marqué et dirigé dans un casier correspondant à la banque émétrice ;
— une fois tous les chèques d’un bordereau triés, c’est le bordereau qui est envoyé (encore une fois, l’opérateur ne regarde que la somme vu que c’est seulement ça qu’il rentre (avec le n° de compte du récipiendaire, donné avant)), et c’est à ce moment-là que la somme des chèques est vérifiée et que la machine gueule si c’est pas bon et l’opérateur doit corriger le bordereau (moi, j’envoyais une photocopie du bordereau et des chèques au client (souvent commerçant) qui s’était trompé, c’était informel).
À la fin de la journée, les données sont envoyées à l’agence centralisatrice (zoup transpac) et les paquets de chèques envoyés, scellés, par courrier interne/messagerie expresse.
Donc, pour résumer, oui, les additions sont vérifiées et le montant de chaque chèque est entré (puisque son montant doit être réclamé à la banque émétrice et que rien n’oblige, au contraire, à faire un bordereau par banque).
En gros, pour construire une méthode d’écriture, on peut :
— se rendre compte qu’il y a des mots ;
→ noter chaque mot différemment : logogrammes (pictogrammes, [[idéogramme]]s)
— se rendre compte que les mots sont eux-mêmes construits ;
— par des sons (syllabes, phonèmes)
→ syllabaires, alphabsyllabaires, alphabets et abjads
— par agglutination, association d’idées, composition, etc.
→ composition de logogrammes
— piquer celle du voisin et essayer de se démmerder pour la faire coller à sa langue.
Tout cela étant allègrement mélangé et plus ou moins systématisé, et réorganisé de temps en temps (les réformes orthographiques ne sont pas une invention récente).
En ce qui concerne les langues sémitiques dont les alphabets sont consonnantiques (c’est-à-dire une grosse partie de ces langues) (ça s’appelle des Abjads), ils ne proviennent pas d’une simplification d’alphabets « avec voyelles », ils viennent du fait que, dans ces langues, les voyelles sont régulières, elles sont dictées par la grammaire. Il n’y a donc aucun intérêt (sauf pédagogiquement, d’où l’utilisation de diacritiques) à noter différemment les phonèmes/syllabes qui ne diffèrent que par les voyelles. Donc on ne note que les consonnes.
Ce n’est pas le cas en français. Les SMS essaient d’utiliser les lettres (et notamment les consonnes) et les chiffres comme des syllabes : « c » pour le son /se/, donc « ses », « ces », « c’est »…, « g » pour /ge/, donc « j’ai », etc.
La méthode de (mal)écriture SMS est à mon avis plutôt à rapprocher de la sténographie, avec comme contrainte d’utiliser un ensemble limité de caractères (lettres latines et chiffres).
Ça servirait à rien. En tout cas ça m’étonnerait que ladite licence soit libre pour Debian : Debian pense que s’ils ont des droits que leurs utilisateurs n’ont pas alors ce n’est pas libre.
Il faudrait donc que ladite licence soit « transitive », que ceux qui se servent de Debian aient les mêmes droits que Debian, sans rien faire de plus que de se servir de Debian pour les avoirs.
Ça fait deux jours qu’on te le répète : il n’y a pas de chaîne infinie !
On la refait, je vais essayer de le faire C-like vu que tu sembles aimer ça.
La fonction halt() prend une fonction F et un paramètre quelconque P et doit dire si la fonction F termine avec P comme paramètre. typedef void* (*fonction_t)(void*);
bool halt(fonction_t f, void* p);
Pour l’instant, ça va ?
Bon. C’est tout ce qu’on a besoin de définir pour halt() : on cherche à savoir si une fonction qui fait ça peut exister. Donc, par l’absurde, on fait comme si, et on cherche une contradiction. Et on se dit, tiens, si on écrivait une fonction (= un (bout de) programme) void foutlebordel(fonction_t fn) {
if (halt(fn, code_de(fn)))
while (1);
}
et si on la passait à halt() ?
Et, pensé-je, là où tu coinces, c’est que code_de(fn), c’est fn : une fonction (ou un programme), c’est du code (des octets qui seront interprétés par le processeur / la machine de Turing). Passer un pointeur de fonction sur la fonction foutlebordel, c’est indiquer où se trouve son code (= une suite d’octets) en mémoire, c’est donc comme donner son code directement. (Évidemment, pour nous, humains, c’est plus facile de lire du code en C que les 500 octets correspondant en binaire, mais pour une machine et pour la démonstration, c’est pareil.)
Donc, foutlebordel(foutlebordel) va appeler halt(foutlebordel, code_de(foutlebordel)), c’est-à-dire la même chose que halt(foutlebordel, foutlebordel).
On ne sait pas ce que halt fait avec foutlebordel. On ne sait pas si elle essaie de l’exécuter (on se doute que non vu que halt ne s’arrêterait pas si la fonction ne s’arrêtait pas). On peut penser que halt fait de l’analyse statique de code (comme un compilateur).
On se fout de savoir ce que halt fait avec foutlebordel. On veut juste que ça foute le bordel.
Or donc, halt(foutlebordel, foutlebordel) va nous dire si un appel de foutlebordel(foutlebordel) s’arrêterait. Je rappelle que foutlebordel(foutlebordel) est justement ce qu’on est en train d’exécuter.
Donc, si halt(foutlebordel, foutlebordel) répond :
— vrai, foutlebordel(foutlebordel) part en boucle infinie. Donc halt se trompe ;
— faux, foutlebordel(foutlebordel) s’arrête. Donc halt se trompe.
Donc, si halt existe, halt se trompe sur foutlebordel(foutlebordel). Donc halt ne peut exister.
il arrive de temps en temps que les députés votent des lois complètement inapplicables en jugement
Hmm, on dirait plutôt que toutes les lois sont complètement inapplicables en jugement.
Et, pour les rendre applicables, elles attendent (très très longtemps) un décret d’application, lequel se trouve être complètement inapplicable lui aussi…
Tu ne lis pas ce que tu cites ?
Il y a écrit « jamais (en tout cas pas pour l’instant) ».
« Dans dix ans », ce n’est pas « pour l’instant ».
Bon, « jamais » non plus… (ou plutôt, « pour l’instant » n’est pas « jamais ».)
Oui, c’est du Duck-Typing. Si vous voulez du typage fort, vous prenez C++ ou Java ou autre
Non ce que tu viens de décrire n'a rien a voir avec le concept de Duck Typing.
Si. Pouvoir utiliser un Hash, une Lambda ou un Array parce que tous les trois répondent à l’opérateur [], c’est du Duck Typing.
Et le fait que [] réponde nil quand la clef/l’indice n’a pas de correspondant pour un Hash ou un Array fait bien que le « coin » de l’Array est le même que celui du Hash. Même « coin », même canard.
Python qui a inventé la notion Duck typing […]
Pas vraiment. On faisait du Duck Typing avant. C’est juste que le terme a été utilisé pour décrire ce typage dans Python.
L[à] c'est un choix de Ruby de faire comme Perl et PHP de renvoyer nil plutôt que péter. Le programmeur doit donc tester sinon il risque d'appeler une méthode sur nil. C'est juste une question de gout.
C’est exactement ce que je dis : « En Ruby, il a été décidé que c’était pareil pour les Array : un indice hors taille renvoie nil. » C’est un choix.
C’est pour cela que je réponds « Non. » à ceux qui sautent à pieds joints sur la table en répétant « C’est nul, ça doit être dans le langage ! ».
Et je te rappelle que Ruby que tu connais mieux que tout le monde apparemment,
En tout cas mieux que lesdits sauteurs…
est un langage a typage fort tout comme Java.
Oui, mea culpa, lapsus calami, je voulais écrire « typage statique ».
Bon les gars, là, vous n’avez pas compris les principes de Ruby.
D’abord, cette fonction get! n’a pas à être dans le langage par défaut, ne serait-ce que parce que l’on peut très bien vouloir avoir des nil dans son Array. Ce n’est pas la valeur de l’élément qu’il faut tester mais si l’indice est ou non hors champ.
Mais ce n’est pas le point principal. Ce qu’il faut comprendre, c’est qu’un Array n’est pas un tableau comme en C ou en Java.
Un Array, c’est une structure de données de type collection, séquentielle et indexée, donc comme un tableau ou une liste. C’est comme un Hash mais les clefs sont des entiers et les éléments sont ordonnés dans une séquence, donc on peut récupérer des sous-séquences.
Si l’on a un Hash qui ne possède pas de valeur pour une clef (disons :toto), que h[:toto] renvoie nil vous choque ? Bien sûr que non. C’est pareil en Java (on récupère null d’une Hashmap quand la clef n’y a pas de correspondant). C’est pareil en C++ avec les std::map (on récupère une référence sur une nouvelle place).
Or on pourrait très bien vouloir que ça lance une exception IllegalKey ou autre.
C’est un choix.
En Ruby, il a été décidé que c’était pareil pour les Array : un indice hors taille renvoie nil.
Vous pouvez aussi utiliser des indices négatifs : a[-1] renvoie le dernier élément, a[-2] l’avant-dernier, etc.
Et des Range : a[1..5] donne la sous-séquence des éléments 2 à 6, ou a[1,4] qui donne la sous-séquence de 4 éléments à partir du 2e.
On pourra aussi remarquer que, souvent, là où l’on utilise un Hash, on peut utiliser un Array ou une lambda : tous les trois répondent à l’opérateur [].
Oui, c’est du Duck-Typing. Si vous voulez du typage fort, vous prenez C++ ou Java ou autre (Java, surtout si vous voulez des exceptions partout).
Ben je trouve que ça ressemble Lemmings. C’est en tout cas plus dans cette catégorie que dans celle d’un RPG, d’un FPS, d’un Boulder Dash, d’un jeu de plateau, d’un jeu de cartes, d’un jeu de stratégie, d’un jeu de plateformes, d’un jeu de course de voitures, d’un…
(Je remarque aussi qu’on peut dire qu’on n’aime pas mais pas que ça ressemble à Lemmings. Marrant ce qui peut réveiller les réactions épidermiques…)
Ben, en fait… si. T’as des « créatures » qu’il faut utiliser pour les faire sortir. Sauf que là, c’est les créatures elles-mêmes dont on se sert. Donc c’est le même genre que Lemmings, sauf que c’est avec des crottes de nez.
[^] # Re: rpm -i aspell
Posté par Sylvain Sauvage . En réponse au journal Mandriva, celle qui fait hiiiiihan aux agrégés. Évalué à 1.
Tu veux qu’il se relise en dormant ?
[^] # Re: Certes
Posté par Sylvain Sauvage . En réponse à la dépêche Chomsky & Cie. Évalué à 3.
Ouais, d’ailleurs, pendant les vacances de fin d’année, j’ai vu un reportage là-dessus sur France 5. « Les Bisounours et le magicroque », que ça s’appelait. Et, franchement, ça faisait très peur…
[^] # Re: Nouveaux mots.
Posté par Sylvain Sauvage . En réponse au journal Les vierges effarouchées du langage. Évalué à 2.
Au subjonctif notamment (moudre est assez drôle par exemple) .
Ça sonne bizarre parce que c’est peu usité.
C’est peu usité parce que ça a toujours été peu usité.
Ça a toujours été peu usité parce qu’il faut être éduqué pour les utiliser, déjà rien que pour avoir une chance d’avoir à les utiliser.
Et comme ça a toujours été peu usité, ça n’a peut-être pas suffisamment été adapté, ça n’a pas subi les modifications phonétiques du reste du français.
C'est d'ailleurs surement pour cette raison que le passé composé remplace si souvent le passé simple
Hmm, peut-être est-ce plutôt que le français se fait encore plus analytique (= découpé) : on préfère composer plusieurs mots fréquents qu’en utiliser un seul plus rare (qui se raréfie donc encore).
ou que les imparfaits du subjonctif soient remplacés par des imparfait de l'indicatif.
On remplace l’imparfait du subjonctif par le présent du subjonctif : on garde le bon mode mais on laisse tomber la concordance des temps.
« Il aurait fallu que je le fasse » au lieu de « il aurait fallu que je le fisse ». (Et jamais *« il aurait fallu que je le faisais » !)
[^] # Re: Ognon
Posté par Sylvain Sauvage . En réponse au journal Les vierges effarouchées du langage. Évalué à 3.
Non, je déconne, la gonflette, ça rend pas « très fort »…
[^] # Re: Oui
Posté par Sylvain Sauvage . En réponse au journal Les vierges effarouchées du langage. Évalué à 3.
[^] # Re: Les brevets
Posté par Sylvain Sauvage . En réponse au journal MS attaque TomTom et Linux (putain de brevets). Évalué à 4.
Un commentaire ironique ne termine pas nécessairement une conversation ; au contraire certains commentaires à caractère humoristique peuvent permettent d’apporter de bons arguments et ainsi de poursuivre la conversation. Mon commentaire ne s’adressait donc pas seulement à toi, je ne faisais que rebondir sur cette idée de licence d’un point de vue moins moqueur pour indiquer aux autres lecteurs et notamment à pBpG que la position « ceux qui ne gênent pas MS ne seront pas attaqués » (le groupe « ceux qui ne gênent pas MS » étant, selon les besoins de l’argumentateur, confondus avec « le libre » ou « ceux qui ne font pas d’argent ») ne tient pas puisqu’il faudrait soit que ceux-ci changent (se vendent), soit que MS change (n’attaque plus personne).
Purée, faut faire des explications de texte à chaque commentaire maintenant.
[^] # Re: C'est stupide
Posté par Sylvain Sauvage . En réponse au journal [HS]Location: L'abus de caution nuit aux clients. Évalué à 3.
— les chèques sont passés dans une machine par un opérateur ;
— l’opérateur indique le montant du chèque (la plupart du temps, on ne lit que le montant en chiffres) ;
— il enfile le chèque dans la machine ;
— le chèque est marqué et dirigé dans un casier correspondant à la banque émétrice ;
— une fois tous les chèques d’un bordereau triés, c’est le bordereau qui est envoyé (encore une fois, l’opérateur ne regarde que la somme vu que c’est seulement ça qu’il rentre (avec le n° de compte du récipiendaire, donné avant)), et c’est à ce moment-là que la somme des chèques est vérifiée et que la machine gueule si c’est pas bon et l’opérateur doit corriger le bordereau (moi, j’envoyais une photocopie du bordereau et des chèques au client (souvent commerçant) qui s’était trompé, c’était informel).
À la fin de la journée, les données sont envoyées à l’agence centralisatrice (zoup transpac) et les paquets de chèques envoyés, scellés, par courrier interne/messagerie expresse.
Donc, pour résumer, oui, les additions sont vérifiées et le montant de chaque chèque est entré (puisque son montant doit être réclamé à la banque émétrice et que rien n’oblige, au contraire, à faire un bordereau par banque).
# Abjad
Posté par Sylvain Sauvage . En réponse au journal Les vierges effarouchées du langage. Évalué à 3.
— se rendre compte qu’il y a des mots ;
→ noter chaque mot différemment : logogrammes (pictogrammes, [[idéogramme]]s)
— se rendre compte que les mots sont eux-mêmes construits ;
— par des sons (syllabes, phonèmes)
→ syllabaires, alphabsyllabaires, alphabets et abjads
— par agglutination, association d’idées, composition, etc.
→ composition de logogrammes
— piquer celle du voisin et essayer de se démmerder pour la faire coller à sa langue.
Tout cela étant allègrement mélangé et plus ou moins systématisé, et réorganisé de temps en temps (les réformes orthographiques ne sont pas une invention récente).
En ce qui concerne les langues sémitiques dont les alphabets sont consonnantiques (c’est-à-dire une grosse partie de ces langues) (ça s’appelle des Abjads), ils ne proviennent pas d’une simplification d’alphabets « avec voyelles », ils viennent du fait que, dans ces langues, les voyelles sont régulières, elles sont dictées par la grammaire. Il n’y a donc aucun intérêt (sauf pédagogiquement, d’où l’utilisation de diacritiques) à noter différemment les phonèmes/syllabes qui ne diffèrent que par les voyelles. Donc on ne note que les consonnes.
Ce n’est pas le cas en français. Les SMS essaient d’utiliser les lettres (et notamment les consonnes) et les chiffres comme des syllabes : « c » pour le son /se/, donc « ses », « ces », « c’est »…, « g » pour /ge/, donc « j’ai », etc.
La méthode de (mal)écriture SMS est à mon avis plutôt à rapprocher de la sténographie, avec comme contrainte d’utiliser un ensemble limité de caractères (lettres latines et chiffres).
[^] # Re: Les brevets
Posté par Sylvain Sauvage . En réponse au journal MS attaque TomTom et Linux (putain de brevets). Évalué à 2.
Il faudrait donc que ladite licence soit « transitive », que ceux qui se servent de Debian aient les mêmes droits que Debian, sans rien faire de plus que de se servir de Debian pour les avoirs.
[^] # Re: Halting problem
Posté par Sylvain Sauvage . En réponse au journal Déterminer le domaine d'un programme. Évalué à 6.
On la refait, je vais essayer de le faire C-like vu que tu sembles aimer ça.
La fonction halt() prend une fonction F et un paramètre quelconque P et doit dire si la fonction F termine avec P comme paramètre.
typedef void* (*fonction_t)(void*);
bool halt(fonction_t f, void* p);
Pour l’instant, ça va ?
Bon. C’est tout ce qu’on a besoin de définir pour halt() : on cherche à savoir si une fonction qui fait ça peut exister. Donc, par l’absurde, on fait comme si, et on cherche une contradiction. Et on se dit, tiens, si on écrivait une fonction (= un (bout de) programme)
void foutlebordel(fonction_t fn) {
if (halt(fn, code_de(fn)))
while (1);
}
et si on la passait à halt() ?
Et, pensé-je, là où tu coinces, c’est que code_de(fn), c’est fn : une fonction (ou un programme), c’est du code (des octets qui seront interprétés par le processeur / la machine de Turing). Passer un pointeur de fonction sur la fonction foutlebordel, c’est indiquer où se trouve son code (= une suite d’octets) en mémoire, c’est donc comme donner son code directement. (Évidemment, pour nous, humains, c’est plus facile de lire du code en C que les 500 octets correspondant en binaire, mais pour une machine et pour la démonstration, c’est pareil.)
Donc, foutlebordel(foutlebordel) va appeler halt(foutlebordel, code_de(foutlebordel)), c’est-à-dire la même chose que halt(foutlebordel, foutlebordel).
On ne sait pas ce que halt fait avec foutlebordel. On ne sait pas si elle essaie de l’exécuter (on se doute que non vu que halt ne s’arrêterait pas si la fonction ne s’arrêtait pas). On peut penser que halt fait de l’analyse statique de code (comme un compilateur).
On se fout de savoir ce que halt fait avec foutlebordel. On veut juste que ça foute le bordel.
Or donc, halt(foutlebordel, foutlebordel) va nous dire si un appel de foutlebordel(foutlebordel) s’arrêterait. Je rappelle que foutlebordel(foutlebordel) est justement ce qu’on est en train d’exécuter.
Donc, si halt(foutlebordel, foutlebordel) répond :
— vrai, foutlebordel(foutlebordel) part en boucle infinie. Donc halt se trompe ;
— faux, foutlebordel(foutlebordel) s’arrête. Donc halt se trompe.
Donc, si halt existe, halt se trompe sur foutlebordel(foutlebordel). Donc halt ne peut exister.
Ça va mieux ou on va tous se tirer une balle ?
[^] # Re: L'homme qui a inventé le fil à couper le beurre
Posté par Sylvain Sauvage . En réponse au journal MS attaque TomTom et Linux (putain de brevets). Évalué à 3.
[^] # Re: Pas de garantie pour l'interopérabilité
Posté par Sylvain Sauvage . En réponse à la dépêche Riposte graduée : le rapporteur s'oppose à l'interopérabilité, l'April appelle à la mobilisation. Évalué à 2.
Sinon, de blague soviétique, je préfère la n°27, mais il paraît que je la raconte mal…
[^] # Re: Déjà signalé dans le journal mais...
Posté par Sylvain Sauvage . En réponse à la dépêche Riposte graduée : le rapporteur s'oppose à l'interopérabilité, l'April appelle à la mobilisation. Évalué à 8.
[^] # Re: Déjà signalé dans le journal mais...
Posté par Sylvain Sauvage . En réponse à la dépêche Riposte graduée : le rapporteur s'oppose à l'interopérabilité, l'April appelle à la mobilisation. Évalué à 2.
Hmm, on dirait plutôt que toutes les lois sont complètement inapplicables en jugement.
Et, pour les rendre applicables, elles attendent (très très longtemps) un décret d’application, lequel se trouve être complètement inapplicable lui aussi…
[^] # Re: comme aux USA ?
Posté par Sylvain Sauvage . En réponse au journal Pour l'ouverture d'une enquête parlementaire contre Christine Albanel !. Évalué à 2.
[^] # Re: Déjà signalé dans le journal mais...
Posté par Sylvain Sauvage . En réponse à la dépêche Riposte graduée : le rapporteur s'oppose à l'interopérabilité, l'April appelle à la mobilisation. Évalué à 7.
Pléonasme plutôt (oui, le chien de Mickey).
Riester semble ètre une plaie tout court. (J’ai toujours pas trouvé où était le nasme…¹)
¹ indice : grosse perche pour une blague récurrente (d’un côté et absorbante de l’autre).
[^] # Re: Intérêt ?
Posté par Sylvain Sauvage . En réponse à la dépêche Conférence sur l'échange de fichiers en 3D (VORTEX). Évalué à 2.
Comme à Hollywood en 1994, quoi…
[^] # Re: Ils n'ont pas compris ?
Posté par Sylvain Sauvage . En réponse à la dépêche Un synthétiseur de voix enfreint-il les droits liés au texte lu ?. Évalué à 2.
(Il « suffit » de respecter la prosodie ; faire une pause aux guillemets et changer de ton.)
[^] # Re: Ils n'ont pas compris ?
Posté par Sylvain Sauvage . En réponse à la dépêche Un synthétiseur de voix enfreint-il les droits liés au texte lu ?. Évalué à 2.
Il y a écrit « jamais (en tout cas pas pour l’instant) ».
« Dans dix ans », ce n’est pas « pour l’instant ».
Bon, « jamais » non plus… (ou plutôt, « pour l’instant » n’est pas « jamais ».)
[^] # Re: Oui mais ...
Posté par Sylvain Sauvage . En réponse au journal Qui va gagner la course au Higgs ?. Évalué à 8.
Tu veux dire Albert Zweistein ?
(Excuse pour cette blague minable : c’était dans un épisode de la 4e dimension de quand j’étais petit…)
[^] # Re: Code le toi même
Posté par Sylvain Sauvage . En réponse à la dépêche Sortie de Moonlight 1.0. Évalué à 2.
Non ce que tu viens de décrire n'a rien a voir avec le concept de Duck Typing.
Si. Pouvoir utiliser un Hash, une Lambda ou un Array parce que tous les trois répondent à l’opérateur [], c’est du Duck Typing.
Et le fait que [] réponde nil quand la clef/l’indice n’a pas de correspondant pour un Hash ou un Array fait bien que le « coin » de l’Array est le même que celui du Hash. Même « coin », même canard.
Python qui a inventé la notion Duck typing […]
Pas vraiment. On faisait du Duck Typing avant. C’est juste que le terme a été utilisé pour décrire ce typage dans Python.
L[à] c'est un choix de Ruby de faire comme Perl et PHP de renvoyer nil plutôt que péter. Le programmeur doit donc tester sinon il risque d'appeler une méthode sur nil. C'est juste une question de gout.
C’est exactement ce que je dis : « En Ruby, il a été décidé que c’était pareil pour les Array : un indice hors taille renvoie nil. » C’est un choix.
C’est pour cela que je réponds « Non. » à ceux qui sautent à pieds joints sur la table en répétant « C’est nul, ça doit être dans le langage ! ».
Et je te rappelle que Ruby que tu connais mieux que tout le monde apparemment,
En tout cas mieux que lesdits sauteurs…
est un langage a typage fort tout comme Java.
Oui, mea culpa, lapsus calami, je voulais écrire « typage statique ».
[^] # Re: Code le toi même
Posté par Sylvain Sauvage . En réponse à la dépêche Sortie de Moonlight 1.0. Évalué à 3.
D’abord, cette fonction get! n’a pas à être dans le langage par défaut, ne serait-ce que parce que l’on peut très bien vouloir avoir des nil dans son Array. Ce n’est pas la valeur de l’élément qu’il faut tester mais si l’indice est ou non hors champ.
Mais ce n’est pas le point principal. Ce qu’il faut comprendre, c’est qu’un Array n’est pas un tableau comme en C ou en Java.
Un Array, c’est une structure de données de type collection, séquentielle et indexée, donc comme un tableau ou une liste. C’est comme un Hash mais les clefs sont des entiers et les éléments sont ordonnés dans une séquence, donc on peut récupérer des sous-séquences.
Si l’on a un Hash qui ne possède pas de valeur pour une clef (disons :toto), que h[:toto] renvoie nil vous choque ? Bien sûr que non. C’est pareil en Java (on récupère null d’une Hashmap quand la clef n’y a pas de correspondant). C’est pareil en C++ avec les std::map (on récupère une référence sur une nouvelle place).
Or on pourrait très bien vouloir que ça lance une exception IllegalKey ou autre.
C’est un choix.
En Ruby, il a été décidé que c’était pareil pour les Array : un indice hors taille renvoie nil.
Vous pouvez aussi utiliser des indices négatifs : a[-1] renvoie le dernier élément, a[-2] l’avant-dernier, etc.
Et des Range : a[1..5] donne la sous-séquence des éléments 2 à 6, ou a[1,4] qui donne la sous-séquence de 4 éléments à partir du 2e.
On pourra aussi remarquer que, souvent, là où l’on utilise un Hash, on peut utiliser un Array ou une lambda : tous les trois répondent à l’opérateur [].
Oui, c’est du Duck-Typing. Si vous voulez du typage fort, vous prenez C++ ou Java ou autre (Java, surtout si vous voulez des exceptions partout).
[^] # Re: Description
Posté par Sylvain Sauvage . En réponse à la dépêche World of Goo disponible pour Linux. Évalué à 1.
(Je remarque aussi qu’on peut dire qu’on n’aime pas mais pas que ça ressemble à Lemmings. Marrant ce qui peut réveiller les réactions épidermiques…)
[^] # Re: Description
Posté par Sylvain Sauvage . En réponse à la dépêche World of Goo disponible pour Linux. Évalué à -5.
[^] # Re: Pas que ça me dérange ...
Posté par Sylvain Sauvage . En réponse au journal L'OS national russe pourrait être basé sur Fedora. Évalué à 2.