Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages
Autres langages Clipper, D, Eiffel, Forth, FoxPro, Kpl, NSDK, R, Rebol, Smalltalk, ... Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/08/2012, 17h55   #1
Borozia
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : mars 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : mars 2011
Messages : 6
Points : 0
Points : 0
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
Borozia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2012, 07h47   #2
jc-miranda
Membre habitué
 
Inscription : décembre 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 124
Points : 145
Points : 145
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:
jc-miranda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2012, 20h54   #3
Borozia
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : mars 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : mars 2011
Messages : 6
Points : 0
Points : 0
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
Borozia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2012, 12h41   #4
ludochm
Membre du Club
 
Homme
Dév SIG-web
Inscription : 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 : 65
Points : 65
Le plus simple est de faire des tests avec io_lib:format/2

Code :
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] .
ludochm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2012, 16h25   #5
Borozia
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : mars 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : mars 2011
Messages : 6
Points : 0
Points : 0
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).
Borozia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h29.


 
 
 
 
Partenaires

Hébergement Web