La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

DYALOG APL 2006 NameSpaces et Fonctions Dynamiques : Lapport de Dyalog APL 91, rue du Fb St Honoré 75008 PARIS tél. : 01 44 71 35 20 Fax : 01 42 66 15.

Présentations similaires


Présentation au sujet: "DYALOG APL 2006 NameSpaces et Fonctions Dynamiques : Lapport de Dyalog APL 91, rue du Fb St Honoré 75008 PARIS tél. : 01 44 71 35 20 Fax : 01 42 66 15."— Transcription de la présentation:

1 DYALOG APL 2006 NameSpaces et Fonctions Dynamiques : Lapport de Dyalog APL 91, rue du Fb St Honoré 75008 PARIS tél. : 01 44 71 35 20 Fax : 01 42 66 15 60 http://www.dyalog.comhttp://www.dyalog.com - http://www.quantys.frhttp://www.quantys.fr

2 Dyalog APL NameSpaces : Définitions Un Namespace est un objet de classe 9 en Dyalog APL, tout comme les objets graphiques. On peut considérer les Namespaces comme des workspaces généralisés. Workspace « plat » Workspace avec Namespaces |----------------------| |-----------------------| | | | FOO MAT VEC | | DISPLAY | | |Util----------| | | | | | DISPLAY | | | FOO MAT VEC | | |... | | | | | |--------------| | | WsDoc_Init | | |WsDoc--------------| | | WsDoc_Xref | | |Init |prt-| |fmt--|| | | WsDoc_Tree | | | |Init| |line || | | WsDoc_prt_init | | |Tree | | | || | | WsDoc_current_page | | |Xref |page| | || | |... | | | |----| |-----|| | | | | |-------------------| | |----------------------| |-----------------------|

3 Dyalog APL NameSpaces : Définitions Les Namespaces sont aux workspaces ce que le système des répertoires est au classement de fichiers sur disques. Ont peut dailleurs en faire une comparaison intéressante : OpérationMS-DOSNamespace CréationMKDIR)NS ou ŒNS Changer de répertoireCD)CS or ŒCS Chemin RelatifDIR1\DIR2\FILENS1.NS2.OBJ Chemin Absolu\DIR\FILE#.NS.OBJ Séparateur de noms\. Racine\# Niveau supérieur..##

4 Dyalog APL NameSpaces : Avantages Ils permettent davoir des variables locales statiques. Alors que les variables localisées dans les fonctions disparaissent quand on quitte la fonction, les globales permettent de conserver des états. Tout comme le système de répertoires, les namespaces permettent de classer les fonctions dans le workspace. On peut par exemple sauvegarder les fonctions utilitaires dans un namespace dédié en laissant en surface uniquement les fonctions propres à lapplication, ce qui évite de leur donner un préfixe destiné à distinguer les 2 types de fonctions. La programmation des interfaces graphiques est sensiblement simplifiée : –Les fonctions callback et les objets peuvent être hébergés dans le même namespace. –Les variables statiques utilisées par les fonctions callback pour stocker un état entre 2 appels peuvent également y être stockées

5 Dyalog APL NameSpaces : Quelques exemples de syntaxes WSDOC.PAGE.NO + 1Incrémente le nombre de pages de WSDOC #.ŒNL 2Variables de lespace racine. UTIL.ŒFX ZDUP A ZA AFix remote function. UTIL.(ŒEX ŒNL 2)Efface les variables du ns UTIL (œŒSE #).(–œŒNL 9).(ŒNL 2)Variables du premier namespace de ŒSE. UTIL.–STRINGExécute la chaîne STRING dans le ns UTIL. A X.Y.DUP MATA reçoit le résultat de la fonction DUP appliquée à MAT du ns courant.

6 Dyalog APL NameSpaces : Exemple La Chose …

7 Dyalog APL Fonctions Dynamiques : Définitions Les fonctions dynamiques offrent une nouvelle alternative pour écrire des petites ou moyennes fonctions. Dans sa forme la plus simple, une fonction dynamique est une expression APL entre accolades pouvant comporter les caractères réservés ¸ et ¾ pour représenter les arguments gauche et droit. Par exemple : {(+/¾)÷½¾} 1 2 3 4 © Moyenne Arithmétique 2.5 3 {¾*÷¸} 64 © racine Cubique 4

8 Dyalog APL Fonctions Dynamiques : Définitions Les fonctions dynamiques peuvent également être nommées, tel que ci-dessous : moyenne{(+/¾)÷½¾} moyenne¨(2 3)(4 5) 2.5 4.5 Les fonctions dynamiques peuvent être définies et utilisées comme nimporte quelle fonction, notamment : –En exécution immédiate, comme ci-dessus. –A lintérieur dune fonction ou dun opérateur définis. –Comme lopérande dun opérateur, comme le each (¨). –A lintérieur dune autre fonction dynamique. Lespace DFNS.DWS, fourni en standard, contient de nombreux exemples pratiques de fonctions dynamiques.

9 Dyalog APL Fonctions Dynamiques : Définitions Fonctions dynamiques multi-lignes Le texte dune fonction dynamique peut comporter plusieurs lignes. Le résultat dune fonction dynamique est donné par la première expression sans affectation. Toutes les variables de la fonction dynamique sont automatiquement localisées. Ainsi, dans lexemple suivant, les expressions sum et num créent les variables locales sum et num. moyenne{ © Moyenne Arithmétique somme+/¾ © Somme des éléments nb½¾ © Nombre déléments somme÷nb © Moyenne } Il est important de bien distinguer les deux types de lignes de cette fonction. Il peut y avoir autant de traitements daffectation que nécessaire, ceux-ci créant des nouvelles variables locales, mais dès quune expression sans affectation est rencontrée par linterpréteur, sont résultat est immédiatement retourné en tant que résultat de la fonction.

10 Dyalog APL Fonctions Dynamiques : Définitions Garde : expression booléenne scalaire suivie à droite par un ':'. Par exemple : ¸<0: © argument gauche négatif Le garde est suivi par une simple expression APL : le résultat de la fonction. ¾0: ¾*0.5 © Racine carrée si nombre positif Une fonction dynamique peut contenir nimporte quel nombre de gardes. Ils sont tous évalués jusquà ce quun des tests donne un. Dans ce cas, le résultat de la fonction est celui de la deuxième partie de la ligne.

11 Dyalog APL Fonctions Dynamiques : Pourquoi ? Contrairement aux autres fonctions, les fonctions dynamiques ne sont évaluées quune fois par linterpréteur, alors que classiquement chaque ligne est évaluée avant dêtre exécutée, doù un gain de vitesse très important quand on passe plusieurs fois sur une ligne. Ils permettent dalléger lécriture, notamment en diminuant le nombre de each

12 Dyalog APL Fonctions Dynamiques : Exemples. Contrairement aux autres fonctions, les fonctions dynamiques ne sont évaluées quune fois par linterpréteur, alors que classiquement chaque ligne est évaluée avant dêtre exécutée, doù un gain de vitesse très important quand on passe plusieurs fois sur une ligne ou si on appelle plusieurs fois la fonction. Ils permettent dalléger lécriture, notamment en diminuant le nombre de each


Télécharger ppt "DYALOG APL 2006 NameSpaces et Fonctions Dynamiques : Lapport de Dyalog APL 91, rue du Fb St Honoré 75008 PARIS tél. : 01 44 71 35 20 Fax : 01 42 66 15."

Présentations similaires


Annonces Google