You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-3Lines changed: 16 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -280,19 +280,32 @@ Autrement dit, si l'on peut caster une classe $A$ vers une autre classe $B$, alo
280
280
281
281
Si l'on définit une méthode `mtype`prenant en paramètre le nom d'une méthode ($m$) et la classe/interface associée ($T_0$), et qui renvoie la liste des types de ses paramètres associée $\overline{U}$ son type de retour $T$,
282
282
et si dans notre environnement, il existe une expression $e_0$, que l'on peut caster en $e_0'$ en l'annotatant du type $T_0$,
283
-
et que les paramètres $\overline{e}$ de cette méthode $m$ peuvent être castés par $\overline{U}$ avec $\lambda$`-mark`, en produisant une nouvelle liste $\overline{e'}$ de paramètres,
283
+
et que les paramètres $\overline{e}$ de cette méthode $m$ peuvent être castés par $\overline{U}$ avec $\lambda$`mark`, en produisant une nouvelle liste $\overline{e'}$ de paramètres,
284
284
et que si dans notre environnement, cette nouvelle liste peut être associée à une nouvelle liste $\overline{e''}$ d'argument annotés par une liste de type $\overline{T}$, qui sont des sous-types de $\overline{U}$ ;
285
285
286
286
Alors, la méthode $m$ peut être appelée avec des paramètres castés si ces paramètres sont d'un type qui étend le type des paramètres d'origine
287
-
(après que ces attributs aient été annotés pas $\lambda$`-mark`).
287
+
(après que ces attributs aient été annotés pas $\lambda$`mark`).
288
288
289
289
##### `T-New`
290
290
291
-
Après que les attributs (de type $\overline{U}$) d'une classe ait été annotés par $\lambda$`-mark`,
291
+
Après que les attributs (de type $\overline{U}$) d'une classe ait été annotés par $\lambda$`mark`,
292
292
si l'on note que ces nouveaux attributs annotés peuvent être castés en un autre sous type ($\overline{T}$) ;
293
293
294
294
Alors, un constructeur peut être appelé avec des paramètres castés si ces paramètres sont d'un type qui étend le type des paramètres d'origine
295
295
296
+
##### `T-Lam`*Comment typer une $\lambda$-expression$*
297
+
298
+
Si l'on a pu caster une expression $e$ en une interface (i.e. associer $e$ à $e'$, par l'annotation d'une interface),
299
+
et que l'interface en question n'est constituée que d'une seule méthode abstraite ;
300
+
301
+
Alors cette expression implémente une interface fonctionnelle.
302
+
303
+
Si une expression implémente une interface fonctionnelle,
304
+
et que l'on peut y appliquer $\lambda$`mark` sur le corps de sa méthode, produisant ainsi une nouvelle expression $e''$,
305
+
et que cette nouvelle expression peut être jugée en tant que sous type de l'expression $e'$ ;
306
+
307
+
Alors, l'expression $e$ est une $\lambda$-expression$
0 commit comments