KIFF sur le raspberry
Konnaître l'InFormatique en Français
 Faites Kiffer le Codeur en Vous
MANIPULATION DE CHAINES
AFFECTATION

//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;   

 

CONTENEURS

//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

 

FONCTION

//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);

}

HASKELL

//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]

 

FENÊTRE et BOUTON

//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();

 

PROLOG

//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");