Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/lisp.upl.
upscmp Source=lisp.upl
lisp
upssng Source=lisp.upl
Source Composant "Exemple de listes employées comme en Lisp" Version 4.0.0;
Procedure P1(O : Nul Ou Caractere)
/********************************/
Debut
Ecran.Ecrire(O);
Fin Procedure
Procedure P2(O1 : Nul Ou Caractere, O2 : Nul Ou Entier)
/*****************************************************/
Debut
Ecran.Ecrire(O1+" "+Caractere(O2));
Fin Procedure
Fonction F1(O : Nul Ou Caractere) Retourner Nul Ou Caractere
/**********************************************************/
Debut
Retourner O.Majuscule();
Fin Fonction
Fonction F2(O1 : Nul Ou Caractere, O2 : Nul Ou Entier) Retourner
Nul Ou Caractere
/*******************************************************************************/
Debut
Retourner O1.Majuscule()+" "+Caractere(O2);
Fin Fonction
Fonction F3(O1 : Nul Ou Caractere) Retourner Nul Ou Booleen
/*********************************************************/
Debut
Retourner O1<="hello!!!";
Fin Fonction
Fonction F4(O1 : Nul Ou Caractere, O2 : Nul Ou Caractere) Retourner
ComparaisonObjet
/**********************************************************************************/
Debut
Si O1==Nul Ou O2==Nul Alors
Retourner ComparaisonNul;
Fin Si
Si O1<O2 Alors
Retourner ComparaisonAvant;
Fin Si
Si O1>O2 Alors
Retourner ComparaisonApres;
Fin Si
Retourner ComparaisonEgal;
Fin Fonction
Procedure EcrireListe(L : Nul Ou ListeDe Nul Ou Caractere)
/********************************************************/
Variable
/******/
C : Nul Ou Caractere;
Debut
Pour C=L.ParcoursAuDebut() JusquA L.DernierElement() Pas L.Suivant()
Faire
Ecran.Ecrire(C);
Fin Pour
Fin Procedure
Principal Optimiser(NePasFactoriserChaine)
/****************************************/
Variable
/******/
L1 : Nul Ou ListeDe Nul Ou Caractere;
L2 : Nul Ou ListeDe Nul Ou Entier;
L3 : Nul Ou ListeDe Nul Ou Caractere;
Debut
L1=ListeDe("bonjour");
L1+="hello";
L1+="guten tag";
L2=ListeDe(1);
L2+=2;
L2+=3;
Ecran.Ecrire("P1:");
L1.Appliquer(P1);
Ecran.Ecrire("P2:");
L1.Appliquer(P2, L2);
Ecran.Ecrire("F1:");
L3=L1.Appliquer(F1);
EcrireListe(L3);
Ecran.Ecrire("F2:");
L3=L1.Appliquer(F2, L2);
EcrireListe(L3);
Ecran.Ecrire("F3:");
L3=L1.Filtrer(F3);
EcrireListe(L3);
Ecran.Ecrire("F4:");
L1+="hello";
L1+="bonjour";
L3=L1.Grouper(F4);
EcrireListe(L3);
Ecran.Ecrire("F4Bis:");
L1+="coucou";
L1+="salut";
L1+="hie";
L1+="schluss";
L3=L1.Trier(F4);
EcrireListe(L3);
L3=L1.Trier(F4, Faux);
EcrireListe(L3);
Fin Principal