Chapitre 03 - Immutability Flashcards

1
Q

Pure functions

A

Fonction qui renvoie toujours la même valeur
Fonction qui me change pas l’environnement (no side effect)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Impure functions

A

Fonction avec une valeur différente avec la même entrée
Provoque des side effects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Actions (Procedures)

A

Ne renvoie rien. Pas utilisable comme fonction. Par principe avec side effect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Expression?

A

valeur comme par exemple 2 ou x + 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Statement?

A

L’assignation est un statement. Il agit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

En programmation fonctionnelle, expression ou statement?

A

On va préférer les expressions. On va plutôt penser que l’assignation est de donner un nom à une expression

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Functional variables?

A

des variables immutables, non assignable ou seulement une fois

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Problème habituel du if-then-else en programmation fonctionnelle

A

Il faut que le if renvoie une valeur ou expression sinon ce sont des statements. En JS => (x>1)?1:0 par exemple

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Immutable objects / functional objects

A

Un object immutable dans une variable immutable => changement impossible

un objet immutable dans une variable mutable => ajout par exemple à un Set possible

Le but est d’avoir des méthodes qui vont créer un nouvel objet plutôt que de modifier l’objet lui même

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Construction des listes fonctionnelles

A

Il faut un “head”, le nil et l’ajout
En Lisp (cons 1 (cons 2 (cons 3 nil)))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Head et Tail des listes

A

Head => premier élément
Tail élément suivant (référence)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Avantage de l’immutabilité des valeurs dans les listes

A

On peut partager facilement les mêmes valeurs en mémoire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hybrid design

A

Utilisation de mutable et immutable ensemble

Utilisation parfois de copies défensive (clone) pour être sur de l’action sans effet de bord de certaines fonctions impures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Utilisation d’immutable dans des champs objets mutables

A

On peut partager plus facilement les valeurs car immutable même si on peut les changer dans l’objet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

List en programmation fonctionnelle

A

liste fonctionnelle: persistante, immutable, un head, tail et nil

How well did you know this?
1
Not at all
2
3
4
5
Perfectly