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

Autres langages Discussion :

[Erlang] Différence entre les balises à "tilde" (avec ~devant) et les classiques (/)


Sujet :

Autres langages

  1. #1
    Futur Membre du Club
    Homme Profil pro
    DBA Oracle/SQL Server & IBM P/Series Administrator
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : DBA Oracle/SQL Server & IBM P/Series Administrator
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 9
    Points
    9
    Par défaut [Erlang] Différence entre les balises à "tilde" (avec ~devant) et les classiques (/)
    Bonjour,

    Membre depuis quelques mois déjà mais bien peu de participation à ce site qui m'a pourtant fournis d'ores et déjà une aide inestimable dans mon activité.

    Depuis quelques temps, j’apprends en autodidacte complet le langage Erlang ; l’acquisition du très complet, et ô combien utile, livre de Joe Amstrong "Programming Erlang" m'a permis une avancée beaucoup plus rapide que tous les tutoriels que j'ai pu trouver, qu'ils soient sortis des document fournis en faculté ou sur Internet.

    Mais aujourd'hui, je bute sur un point de détail et mes recherches s'avèrent infructueuses (il est possible que la réponse soit dans le livre ou dans la doc officielle mais n'étant pas naturellement anglais, l'info a pu m'échapper).

    Un point qui ne doit pas être très compliqué pourtant :

    Lors de l'utilisation des fonction input/output (io:format notamment), j'ai remarqué différentes balises symboliques tel que ~p, ~n... mais également des balises classiques à d'autres langages comme /p, /n, etc...

    Je ne pense pas me tromper en affirmant que le "p" permet de lier à la fonction un élément externe (atom, variables, tuples, etc...)
    Le "n" est classiquement lié au retour chariot.

    Ma question est donc la suivante; quelle différence faire entre les balises "tilde" (avec ~devant) et les classiques (/)?

    Y a-t-il une ou des règles particulières de leurs utilisations ?

    Et accessoirement existe-t-il un document comme c'est le cas dans d'autres langages (C, C++) qui regrouperait toutes les particularités et toutes les balises utilisables (en français ou en anglais) ?

    Merci d'avance de vos réponses/recherches.

    Borozia

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 156
    Points
    156
    Par défaut
    Bon, probablement trop tard, mais au cas où. :-)

    Je ne me souviens pas du cas éventuel des backslash, mais pour le formatage utilisant le '~', le man de la fonction io:format décrit l'ensemble des commutateurs que tu cherches:

  3. #3
    Futur Membre du Club
    Homme Profil pro
    DBA Oracle/SQL Server & IBM P/Series Administrator
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : DBA Oracle/SQL Server & IBM P/Series Administrator
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Il n'est jamais trop tard pour répondre à une question (L'info peut également servir à d'autres)

    Merci de ta réponse jc-miranda, je vais aller voir si je trouve mon bonheur dans le man.

    Si il y a d'autres réponses pour plus d'info ou concernant les autres questions, je surveille le sujet

  4. #4
    Membre du Club
    Homme Profil pro
    Dév SIG-web
    Inscrit en
    Août 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dév SIG-web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 28
    Points : 66
    Points
    66
    Par défaut
    Le plus simple est de faire des tests avec io_lib:format/2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    8> A = {ok, 1,2,[45,"qzqzd"]}.
    {ok,1,2,[45,"qzqzd"]}
    12> io_lib:format("~p\n", [A]).
    [[123,
      ["ok",44,"1",44,"2",44,[91,["45",44,"\"qzqzd\""],93]],
      125],
     10]
    13> io_lib:format("~p~n", [A]).
    [[123,
      ["ok",44,"1",44,"2",44,[91,["45",44,"\"qzqzd\""],93]],
      125],
     "\n"]
    15> io_lib:format("\p~n", []). 
    [112,"\n"]
    16> io_lib:format("\p~n", [A]).
    ** exception error: bad argument
         in function  io_lib:format/2
            called as io_lib:format("p~n",[{ok,1,2,[45,"qzqzd"]}])
    La syntaxe tilde et antislash n'est pas équivalente. Les deux peuvent faire un retour chariot avec 'n' (avec une différence*), mais par exemple le 'p' n'existe qu'avec le tilde.

    Tout simplement parce que le "\p" ça n'existe pas, alors que le "\n" est une notation d'usage pour le retour chariot.

    Donc par défaut, je trouve qu'il est plus simple d'utiliser systématiquement le tilde. De plus, je suppose que des optimisations sont faites si on favorise le tilde mais je n'en sais rien.


    *Pour le 'n', on voit que "\n" devient 10 alors que "~n" devient [10] .

  5. #5
    Futur Membre du Club
    Homme Profil pro
    DBA Oracle/SQL Server & IBM P/Series Administrator
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : DBA Oracle/SQL Server & IBM P/Series Administrator
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    J'arrive longtemps après ton post, mais merci du renseignement Ludochm.

    Entre temps je suis passé différemment dans mon code, et ai rendu mon projet.
    Mais l'astuce servira sans doute à d'autre ou plus tard (je la garde sous le coude en cas de besoin).

Discussions similaires

  1. Différences entre une balise et un attribut ?
    Par Evocatii dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 10/07/2009, 15h33
  2. Réponses: 9
    Dernier message: 12/02/2007, 01h18

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