//Manipulation de chaines de caractères
chaine c="Ceci est une chaine de caractères";
//On affiche c et la taille de la chaine
afficheligne(c,c.taille());
chaine sub;
//Affectation de c dans sub
sub=c;
//Affectation d'une sous-partie de c dans sub
//Comme dans Python
sub=c[5:10]; //=> "est u"
//Affectation par recherche de caractères
sub=c["i":"i"]; //=> "i est une chai"
sub=c.renverse(); //=> "serètcarac ed eniahc enu tse iceC"
//Affectations et déclarations diverses
//chaque déclaration ou affectation est terminée par un ";"
chaine c="ceci est une valeur";
nombre n=10;
décimal d=1.9801;
table t=[1,2,3,4];
dictionnaire dc={'a':1,'b':2} ;
bool b=vrai;
//Manipulation de conteneur
table t=[1,2,3,4,5,6,7,8];
//Accès à une valeur ou à un domaine de valeur
afficheligne(t[0],t[1:4]); //=> 1 [2,3,4]
//On affiche toutes les valeurs de i
nombre i;
pour (i=0 tantque i<t.taille() faire i=i+1)
affiche(t[i]);
//On peut aussi utiliser la forme plus conventionnelle
//mais un peu trop cryptique pour certains
pour (i=0;i<t.taille();i=i+1)
affiche(t[i]);
afficheligne();
dictionnaire d={'a':1,'b':2};
//Affectation d'une valeur
d['c']=8;
afficheligne(d,d['a'],d['c']); //=> {'a':1,'b':2,'c':8} 1 8
//Déclaration d'une fonction
fonction Test(chaine c,nombre n) {
//On applique une formule sur n
//que l`on sauve dans i
nombre i=n+10;
//On modifie c
c="Valeur:"+i;
//On renvoie cette nouvelle valeur
renvoie(c);
}
//Petit exemple à la Haskell
//On peut initialiser une table à la Haskell
table t=[1..10]; //=> t vaut [1,2,3,4,5,6,7,8,9,10]
//On introduit l'expression entre <...>
//L'expression se lit:
// a) nous itérons parmi les valeurs de t, "x <- t"
// b) nous renvoyons ces valeurs multipliées par deux
t=<x*2 | x <- t>; //=> t vaut [2,4,6,8,10,12,14,16,18,20]
//Déclaration d'une fenêtre avec un bouton
//On déclare la fonction de rappel que l'on va associer
//à notre bouton.
fonction Appuie(bouton b,omni e) {
afficheligne("on a appuyé sur un bouton");
}
//On déclare une fenêtre
fenêtre f;
//On déclare un bouton avec notre fonction Appuie
bouton b avec Appuie;
//On ouvre notre fenêtre dans laquelle on va rajouter notre bouton
//La fenêtre est positionnée en 50,50 avec une hauteur
//et une largeur de 400
f.commence(50,50,400,400,"Test");
//La position du bouton est fixé par rapport à la fenêtre
b.crée(30,30,100,50,"Ok");
//Fin de l'insertion des objets dans la fenêtre
f.fin();
//On lance l'exécution de notre fenêtre
f.lance();
//Les tours de Hanoi en Prolog.
//Trois tours: gauche, centre, droit
//Une action est trouvée, on affiche le résultat
//via une primitive KIFF
déplace(1,?X,?Y,_) :- afficheligne(?X,"vers",?Y).
déplace(?N,?X,?Y,?Z) :-
?N>1,
?M est ?N-1,
déplace(?M,?X,?Z,?Y),
déplace(1,?X,?Y,_),
déplace(?M,?Z,?Y,?X).
//On lance notre inférence
//Le chiffre indique le nombre de disque à l'origine
//sur la colonne de gauche
déplace(3,"gauche","droit","centre");