JS - Chapitre 12 - Lazy transformations Flashcards

1
Q

Pourquoi a t’on besoin de Lazy transformations?

A

Parce que les filter, map et reduce produisent un nouveau tableau à chaque étape => pénalités pour des grandes tailles

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

Quelle méthode permet d’exprimer le filter et le map?

A

reduce et en faisant un reducer
exemple de map
function map(transform) {
return function reducer(arr,value) {
const newValue = transform(value);
return […arr, newValue];
}
}

Appel avec la méthode qui double une valeur
const newNumbers = numbers.reduce(map(double), []);

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

Qu’est que transducers

A

elle prends un reducer et produit un nouveau reducer

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

En quoi c’est important les transducers

A

On peut combiner les transformations à l’intérieur d’un transducer pour eviter de faire une copie à chaque étape

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

Qu’est-ce qui nous permet de permet de faire du chainage de transformation en mode “Lazy”

A

dans immutable.JS il y a Seq

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

Comment fonctionne Seq

A

Seq applique une série de transformation et retourne une “Seq”. Il faut ensuite transformer en Array (avec toArray())

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

Exemple de Seq

A

const sequence = Seq( [1,2,3,4]).fliter(isEven).map(double)

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

Defaut de toArray pour les Seq

A

La conversion de Seq en Array est couteuse, il faudrait faire l’ensemble des opérations et à la fin faire le toArray

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

Comment créer une séquence de nombres entre start et end

A

Depuis Immutable c’est Range avec Range(start, end) - Attention 0 based

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