LispWorks CAPI/Créer des menus/Créer des éléments individuelles de menu

menu-item vous permet de créer des éléments de type menu individuel. Cet élément peut être passé à des composantes de menu or des menus via le mot clé :items. En utilisant cette classe, il est possible d'assigner différent callbacks pour chaque élément.
Cependant, chaque instance d'un élément de menu ne peut être utilisé plus qu'à une place à la fois.

LispWorks CAPI/Créer des menus/Mnémoniques dans les menus

Sous Microsoft Windows et GTK+, vous pouvez contrôler des mnémoniques dans les titres de menu et dans les éléments de menu en utilisant l'initargs :mnemonic, :mnemonic-title (et si néssaissaire, :mnemonic-escape).
Cet exemple illustre les diverses façons de spécifier des mnémoniques dans les menus.

LispWorks CAPI/Créer des menus/Désactivation des éléments de menu

Une fonction peut être utilisé par l'initarg :enabled-function pour déterminer si un menu, un élément de menu est actif. Par défaut cet objet est toujours actif.
Considérez l'exemple suivant
En changeant la valeur de *on* de "t" à "nil" dans le "Listener (en utilisant setq), donne comme résultat le changement de l'état actif à non-actif.

Programmer en R/Manipuler les vecteurs
Notion de vecteur.
Dans le chapitre précédent on a pu voir qu'un nombre possède deux types codice_1 et codice_2. En réalité il s'agit d'un vecteur qui ne contient qu'un seul nombre.
> a = 2
> is (a)
[1] "numeric" "vector"
La notion de vecteur est essentielle. C'est cette structure de donnée qui est utilisée lorsque l'on veut traiter une série de donnée.
Bien qu'étant essentiellement une série de valeurs, R fournit tout de même des opérateurs et fonctions permettant de traiter les vecteurs comme en géométrie ou en algèbre (somme, produit par un scalaire, produit scalaire entre deux vecteurs).
Initialisation d'un vecteur.
La fonction codice_3 permet de créer un vecteur. Tous les éléments d'un vecteur doivent être du même type.
> a = c(12,7,5.3,9.1,24)
> a
[1] 12.0 7.0 5.3 9.1 24.0
> is (a)
[1] "numeric" "vector" 
> b = c("Vecteur", "de", "chaîne", "de", "caractère")
> b
[1] "Vecteur" "de" "chaîne" "de" "caractère"
> is (b)
[1] "character" "vector" "data.frameRowLabels"
> c = c("Dans", 1, "vecteur contenant", 1, "nombre tout est convertie en chaîne de caractère")
> c
[1] "Dans" 
[2] "1" 
[3] "vecteur contenant" 
[4] "1" 
[5] "nombre tout est convertie en chaîne de caractère"
Les nombres codice_4, ..., codice_5 apparaissant ci-dessus sont les indices des différents éléments du vecteur. Le premier indice d'un vecteur est 1.
Plusieurs fonctions permettent de créer des vecteurs :
> seq (1,13,1.2)
 [1] 1.0 2.2 3.4 4.6 5.8 7.0 8.2 9.4 10.6 11.8 13.0
> 1:10
 [1] 1 2 3 4 5 6 7 8 9 10
> rep (0,10)
 [1] 0 0 0 0 0 0 0 0 0 0
Extraire ou assigner une composante.
Pour avoir accès à la valeur du "i"-ème élément, on utilise la notation codice_6 ; si l'on veut les éléments "i", "j" et "k", on utilise un vecteur d'indices codice_7. 
> x <- c(1:5, 10:15)
> print(x)
[1] 1 2 3 4 5 10 11 12 13 14 15
> x[6]
[1] 10
> x[4:7]
[1] 4 5 10 11
> x[c(1, 3, 6)]
[1] 1 3 10
On peut aussi utiliser un vecteur de booléens ; R extrait alors les éléments correspondant aux valeurs vraies. Par exemple :
> x <- c(1:5, 10:15)
> indices = x > 5
> x[indices]
[1] 10 11 12 13 14 15
Arithmétique des vecteurs.
Les opérations arithmétiques entre deux vecteurs de même dimension sont des opérations terme à terme. Une opération arithmétique entre deux vecteurs de même dimension retourne un vecteur dont les éléments correspondent à l'opération arithmétique effectuée pour l'indice correspondant des vecteurs donnés en argument.
> a <- c(1, 6, 2, 4)
> b <- c(9, 2, 6, 1)
> a+b
[1] 10 8 8 5
> a/b
[1] 0.1111111 3.0000000 0.3333333 4.0000000
La somme de deux vecteurs correspond donc à la notion algébrique.
Si un vecteur est plus petit que l'autre, R répète les valeurs du plus petit vecteur jusqu'à générer un vecteur de même taille que le plus grand. En particulier, si un des vecteurs est un scalaire, alors R applique l'opération entre le scalaire et tous les éléments du vecteur
> a <- 1:10
> a+5
 [1] 6 7 8 9 10 11 12 13 14 15
Pour déterminer les nombres impairs :
> a %% 2 == 1
 [1] TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE
Ainsi, l'opération multiplication d'un vecteur par un scalaire correspond à l'opération algébrique.
> v <- c(2, 3)
> 4*v
[1] 8 12
Opérations algébriques.
L'opérateur codice_8 (pourcent-astérisque-pourcent) effectue un produit scalaire, en supposant la base orthonormale :
> u <- c(1, 2)
> v <- c(3, -1)
> u%*%v
 [,1]
[1,] 1
Notons que le résultat est une matrice d'une seule composante (un tableau d'une seule case). On peut extraire le résultat en prenant l'élément (1, 1) de la matrice, ou bien en faisant la somme cumulée de ce vecteur :
> a <- u%*%v
> is(a)
[1] "matrix" "array" "structure" "vector" 
> a[1, 1]
[1] 1
> cumsum(a)
[1] 1
On peut ainsi calculer la norme du vecteur par
> sqrt(u%*%u)
 [,1]
[1,] 2.236068
Vecteur comme suite de valeurs.
Le vecteur peut aussi représenter une suite "u"1, "u"2, …, "un". Le logiciel R fournit les fonctions :