IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Les hachages : ca sert à quoi ?


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 57
    Points
    57
    Par défaut Les hachages : ca sert à quoi ?
    Bonjour,

    Venant de m'initier à perl, j ai cru comprendre que les hachages etaient l'une des puissantes spécificités de ce langage.

    Cependant, venant d'un univers C, Delphi et CAML, j'ai un peu de mal à saisir dans quels cas ces structures sont interessantes? optimisées ? pratique ?

    Pourriez vous me donner quelques exemples montrant clairement leurs interet ?

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Les hachages ( = hash = table de hachage = tableau associatif = dictionnaire) servent à tout !
    La fonction d'une table de hachage est d'associer une chaîne de caractère à un scalaire. Elle fait ceci de façon efficace, de sorte que l'accès à un élément est en O(1).

    Les fonctions évidentes sont les fonctions "associatives", comme par exemple des traductions (d'un mot à un autre, d'une adresse ip vers son hostname, d'un élément à son "score" (nombre d'occurence dans un fichier, ping pour une ip...). Pour tout cela, les tables de hachage sont bien plus efficaces et faciles à utiliser qu'un tableau (bien qu'elles utilisent un tableau en sous-main elle le font de façon très efficace par rapport à une implémentation rapide à la main). Dans cette catégorie, on peut aussi remarquer que les hashs servent au passage des arguments nommés en Perl. Elles jouent également le rôle des structures du C en plus souple (on peut ajouter des éléments).
    Néanmoins, les hachages ont aussi une utilité moins évidente à première vue mais que les bons programmeurs Perl utilisent très fréquemment : chaque clé est unique ! Aussi un hash peut-il jouer le rôle d'un set et en tant que tel on peut s'en servir pour tous les traitements de ce type, par exemple pour supprimer les doublons d'un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my @array = (...)
    {
      my %temp;
      @array = grep { not $temp{$_}++ } @array;
    }
    Et j'en oublie...
    En bref le hash est le couteau suisse du programmeur Perl, très versatile il se prête à toute sorte d'usage parfois innattendu pour le débutant.

    (PS :le hash est très souvent la structure sous-jacente des objets en Perl)

    --
    Jedaï

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Bonjour et merci de cette réponse claire et précise !

  4. #4
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    N'oublie pas le tag

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Ben je l'ai mis pépère !

  6. #6
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    oups, désolé, au moment ou j'ai posté ça n'apparaissait pas

    toutes mes excuses !

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    C'est pas grave ! ca arrive à tout le monde de faire des erreurs ! (moi jamais mais d autres oui ! )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ca sert à quoi de connecter les périph en blutooth
    Par heliy dans le forum Mac OS X
    Réponses: 4
    Dernier message: 07/05/2013, 07h17
  2. Les skins RichFaces, ça sert à quoi ?
    Par thierryler dans le forum Frameworks Web
    Réponses: 4
    Dernier message: 04/11/2010, 15h21
  3. Les multimap, ca sert à quoi?
    Par Invité dans le forum SL & STL
    Réponses: 16
    Dernier message: 15/02/2010, 11h49
  4. windows avec 256Mo de RAM,ça sert à quoi?
    Par afrikha dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 15/11/2005, 19h07
  5. Ça sert à quoi ?
    Par sokadavia dans le forum Scheme
    Réponses: 4
    Dernier message: 18/05/2004, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo