Programmer en R/Les types de base
R comme une calculatrice.
En mode interactif, il est possible d'utiliser R comme une calculatrice. Le séparateur décimal est le point. La notation exponentielle utilise le codice_1 : codice_2 pour 4·105. Pour les nombres complexes, l'imaginaire i se note codice_3.
Ci-dessous quelques exemples de calculs.
> 2+3
[1] 5
> 3+7/5
[1] 4.4
> Arg(1i)
[1] 1.570796
> 2==8
[1] FALSE
Le langage R permet de faire des calculs, en utilisant le signes classiques codice_4, codice_5, codice_6, codice_7, codice_8 (élévation à la puissance), et les fonctions classiques codice_9 (racine carrée, "square root"), codice_10 (exponentielle), codice_11, codice_12, codice_13, codice_14 (arrondi mathématique), codice_15 (troncature), … Les angles sont exprimés en radians. Les fonctions mathématiques standard sont :
 abs sign sqrt
 floor ceiling round
 exp expm1
 log2 log10 log1p
 cos sin tan
 acos asin atan
 cosh sinh tanh
 acosh asinh atanh
 gamma lgamma digamma trigamma
 cumsum cumprod cummax cummin
 Im Re Arg Conj Mod
La division euclidienne se fait avec codice_16 : codice_17 donne normalement la même chose que codice_18, mais les algorithmes étant différents, les résultats peuvent différer si "a" et "b" ne sont pas des entiers. Le reste (modulo) s'obtient avec codice_19.
Ainsi, la parité d'un entier "a" se teste avec
a%%2 == 0
Notons que la précision de calcul est limitée :
> sin(pi)
[1] 1.224606e-16
La valeur de sin(π) est normalement de 0.
Constantes prédéfinies.
Les constantes prédéfinies dans R sont :
Les variables.
Comme tout langage, R dispose de variables.
Le typage des variables est implicite : il est déterminé lors de l'initialisation de la variable. Les variables n'ont pas besoin d'être déclarées au préalable, leur portée est celle du groupe d'instruction dans lequel elles ont été initialisées.
Il y a deux manières pour affecter une variable, soit avec le signe codice_29, soit avec codice_30 :
> a = 5
> a
[1] 5
> b <- 7
> b
[1] 7
Un nom de variable peut être composé de lettres, chiffres, et des caractères « codice_31 » (point) et « codice_32 » (tiret de soulignement, "underscore"), mais :
L'interpréteur R est sensible à la casse. D'autres caractères peuvent être autorisés selon la configuration régionale, comme par exemple les lettres accentuées, mais cela réduit la portabilité du code.
La commande codice_33 fournit la liste des variables créées (ne pas oublier la paire de parenthèses vide). On peut supprimer une variable "x" avec la commande codice_34 "(remove)".
Notons que certains noms d'une lettre sont déjà utilisés par R, et ne devraient donc pas être utilisés comme nom de variable. Il s'agit de :
C D F I T
c q t
Les nombres.
Le type de nombre est déterminé de manière implicite lors de l'initialisation d'une variable. R dispose d'entiers (codice_35), de nombres en virgule flottante avec une double précision (codice_36), et de nombre complexe (codice_37). Les types suivent la norme IEEE 754.
> a = 2
> is (a)
[1] "numeric" "vector" 
> b = 3.6
> is (b)
[1] "numeric" "vector" 
> c = 1+1i
> is (c)
[1] "complex" "vector" 
La fonction codice_38 retourne le type de l'objet. Pour forcer l'utilisation d'un type particulier on peut utiliser les fonctions codice_39, codice_40et codice_41.
> a = as.integer (2.6)
> a
[1] 2
> is (a)
[1] "integer" "numeric" "vector" 
[4] "data.frameRowLabels"
<syntaxhighlight>
Les fonctions codice_42 permettent de tester le type d'une variable.
<syntaxhighlight lang="rsplus">
> a = 7.3
> is.integer (a)
[1] FALSE
Les valeurs « infini » et « (ceci n'est) pas un nombre » ("not a number", selon IEEE 754) sont notées respectivement codice_43 et codice_44. Elles sont considérés comme des nombres de type double.
> x = Inf
> 1/x
[1] 0
> 0/0
[1] NaN
Comparaison et logique booléenne.
Les valeurs booléennes, appelées « logiques » "(logic)" dans R, sont codice_45 pour vrai et codice_46 pour faux (en lettres capitales) ; on peut les abréger en codice_47 et codice_48. Elles s'obtiennent avec des comparaisons, qui se font avec les signes classiques
La comparaison d'un vecteur avec une valeur donne un vecteur de booléens :
> c(1:5) == 1
[1] TRUE FALSE FALSE FALSE FALSE
La comparaison de deux vecteurs donne un vecteur booléen issu de la comparaison terme à terme
> c(1, 2, 3, 4) == c(1, 4, 3, 4)
[1] TRUE FALSE TRUE TRUE
L'opération « ou » se note avec le tube codice_55, le « et » avec la perluette codice_56 et le « non » avec le point d'exclamation codice_57 :
> TRUE | FALSE
[1] TRUE
> ! TRUE
[1] FALSE
Le « ou exclusif » se note codice_58 ; c'est une fonction :
> xor(T, T)
[1] FALSE
> xor(T, F)
[1] TRUE
Ces opérateurs ou fonctions font des comparaisons terme à terme entre vecteurs de booléens.
Les fonctions codice_59 (« au moins un ») et codice_60 (« tous ») appliquent respectivement le « ou » et le « et » sur tout un vecteur.
> any(T, F, T)
[1] TRUE
> all(T, F, T)
[1] FALSE
Les chaînes de caractères.
Les chaines de caractère sont délimitées par les caractères codice_61 ou codice_62.
> a = "Ceci est une chaïne de caractère"
> a
[1] "Ceci est une chaïne de caractère"
> is (a)
[1] "character" "vector" "data.frameRowLabels"
> b = 'et une autre'
> b
[1] "et une autre"
> c = 'l\'apostrophe s\'écrit en mettant un anti-slash devant \"
> c
[1] "l'apostrophe s'écrit en mettant un anti-slash devant '"
Scalaire ou vecteur ?
Nous avons vu ici des variables de type « scalaire », c'est-à-dire ne contenant qu'une seule valeur. Pour R, un scalaire est un vecteur d'une composante. Les opérations que nous avons vues s'appliquent donc également aux vecteurs, mais par défaut, elles s'appliquent terme à terme. Par exemple, codice_63 crée le vecteur ("x"[1]×"y"[1], "x"[2]×"y"[2], …).
Ceci est étudié dans le chapitre suivant "../Les vecteurs/".

LispWorks CAPI/Créer une simple fenêtre/Zone de texte Stream/Stream intéractif

Un stream intéractif est un block dans lequel est bâti un listener-pane

LispWorks CAPI/Créer une simple fenêtre/Spécification des titres/Spécifier directement les titres/Titre de fenêtre

Pour spécifier le nom d'un fenêtre CAPI, il suffit d'insérer l'initarg :title pour une interface. Il est possible d'y accéder à l'aider de interface-title.
Des controls supplémentaires son possible en utilisant set-default-interface-prefix-sufix et/ou en spécifiant interface-extend-title comme illustré dans Controller le titre des interfaces

LispWorks CAPI/Créer une simple fenêtre/Spécification des titres/Spécifier directement les titres/Titre pour des éléments

La position de tout type de titre peut être spécifiée en utilisant le mot clé :title-position. La plupart des interfaces a son titre placé à la position :top, cependant certains utilisent :left.
Vous pouvez placer le titre dans une boite (un groupbox) qui entour l'élément en spécifiant :title-position :frame.
Vous pouvez aussi changer le format du text en utilisant le mot clé :title-font.
Le titre d'un title-object et la police peuvent être changés de façon interactive avec setf.
"Créez un button en évaluant le code ci-dessous dans le Listener"
"Maintenant évaluez ceci"
Dès que votre formulaire sera évalué, le titre de votre fenêtre sera changer
"En dernier lieu, évalué ceci : "

LispWorks CAPI/Créer une simple fenêtre/Zone de texte Stream/L'écouteur

LispWorks/Créer une simple fenêtre/Ajout d'une barre d'outils à une interface

LispWorks CAPI/Liste des nouveautés
Cette page permet de voir la date des mises à jour de ce livre. Souvent je dois travailler dans des sous sections et il est inconvéniant de devoir fouiller pour savoir si une section a été mise à jour.
Il est à noter que cette page fut créée le 12 août 2010 donc il n'existe aucun historique avant ce jour. Merci de votre compréhension.
À venir ....
Voici les pages qui seront bientôt ajoutées.

LispWorks CAPI/Créer une simple fenêtre/Propriétées génériques/Mnémoniques