semantic-typescript 0.1.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/readme.es.md CHANGED
@@ -12,37 +12,43 @@ A diferencia del procesamiento sincrónico tradicional, Semantic adopta un modo
12
12
  npm install semantic-typescript
13
13
  ```
14
14
 
15
- ## Tipos Básicos
15
+ ## Tipos básicos
16
16
 
17
17
  | Tipo | Descripción |
18
18
  |------|-------------|
19
19
  | `Invalid<T>` | Tipo que extiende null o undefined |
20
20
  | `Valid<T>` | Tipo que excluye null y undefined |
21
21
  | `MaybeInvalid<T>` | Tipo que puede ser null o undefined |
22
- | `Primitive` | Colección de tipos primitivos |
23
- | `MaybePrimitive<T>` | Tipo que puede ser un primitivo |
24
- | `OptionalSymbol` | Identificador simbólico para la clase Optional |
25
- | `SemanticSymbol` | Identificador simbólico para la clase Semantic |
26
- | `CollectorsSymbol` | Identificador simbólico para la clase Collector |
27
- | `CollectableSymbol` | Identificador simbólico para la clase Collectable |
28
- | `OrderedCollectableSymbol` | Identificador simbólico para la clase OrderedCollectable |
29
- | `WindowCollectableSymbol` | Identificador simbólico para la clase WindowCollectable |
30
- | `StatisticsSymbol` | Identificador simbólico para la clase Statistics |
31
- | `NumericStatisticsSymbol` | Identificador simbólico para la clase NumericStatistics |
32
- | `BigIntStatisticsSymbol` | Identificador simbólico para la clase BigIntStatistics |
33
- | `UnorderedCollectableSymbol` | Identificador simbólico para la clase UnorderedCollectable |
34
- | `Runnable` | Función sin parámetros ni valor de retorno |
35
- | `Supplier<R>` | Función sin parámetros que retorna R |
36
- | `Functional<T, R>` | Función de transformación de un parámetro |
37
- | `Predicate<T>` | Función de predicado de un parámetro |
22
+ | `Primitive` | Conjunto de tipos primitivos |
23
+ | `MaybePrimitive<T>` | Tipo que puede ser de tipo primitivo |
24
+ | `OptionalSymbol` | Símbolo identificador de la clase Optional |
25
+ | `SemanticSymbol` | Símbolo identificador de la clase Semantic |
26
+ | `CollectorsSymbol` | Símbolo identificador de la clase Collector |
27
+ | `CollectableSymbol` | Símbolo identificador de la clase Collectable |
28
+ | `OrderedCollectableSymbol` | Símbolo identificador de la clase OrderedCollectable |
29
+ | `WindowCollectableSymbol` | Símbolo identificador de la clase WindowCollectable |
30
+ | `StatisticsSymbol` | Símbolo identificador de la clase Statistics |
31
+ | `NumericStatisticsSymbol` | Símbolo identificador de la clase NumericStatistics |
32
+ | `BigIntStatisticsSymbol` | Símbolo identificador de la clase BigIntStatistics |
33
+ | `UnorderedCollectableSymbol` | Símbolo identificador de la clase UnorderedCollectable |
34
+
35
+ ## Interfaces funcionales
36
+
37
+ | Interfaz | Descripción |
38
+ |----------|-------------|
39
+ | `Runnable` | Función sin parámetros y sin valor de retorno |
40
+ | `Supplier<R>` | Función sin parámetros que devuelve R |
41
+ | `Functional<T, R>` | Función de transformación de un solo parámetro |
38
42
  | `BiFunctional<T, U, R>` | Función de transformación de dos parámetros |
39
- | `BiPredicate<T, U>` | Función de predicado de dos parámetros |
40
- | `Comparator<T>` | Función de comparación |
41
43
  | `TriFunctional<T, U, V, R>` | Función de transformación de tres parámetros |
42
- | `Consumer<T>` | Función consumidora de un parámetro |
43
- | `BiConsumer<T, U>` | Función consumidora de dos parámetros |
44
- | `TriConsumer<T, U, V>` | Función consumidora de tres parámetros |
45
- | `Generator<T>` | Función generadora |
44
+ | `Predicate<T>` | Función de predicado de un solo parámetro |
45
+ | `BiPredicate<T, U>` | Función de predicado de dos parámetros |
46
+ | `TriPredicate<T, U, V>` | Función de predicado de tres parámetros |
47
+ | `Consumer<T>` | Función de consumo de un solo parámetro |
48
+ | `BiConsumer<T, U>` | Función de consumo de dos parámetros |
49
+ | `TriConsumer<T, U, V>` | Función de consumo de tres parámetros |
50
+ | `Comparator<T>` | Función de comparación de dos parámetros |
51
+ | `Generator<T>` | Función generadora (núcleo y base) |
46
52
 
47
53
  ```typescript
48
54
  // Ejemplos de uso de tipos
@@ -136,15 +142,34 @@ console.log(emptyOpt.orElse(100)); // Output 100
136
142
  | `Collector.shortable(identity, interruptor, accumulator, finisher)` | Crea un colector interrumpible | O(1) | O(1) |
137
143
 
138
144
  ```typescript
139
- // Ejemplos de uso de Collector
140
- const sumCollector = Collector.full(
141
- () => 0,
142
- (sum, num) => sum + num,
143
- result => result
144
- );
145
+ // Ejemplos de conversión de colectores
146
+ const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
147
+
148
+ // Prioridad al rendimiento: usar colector no ordenado
149
+ const unordered = numbers
150
+ .filter(n => n > 3)
151
+ .toUnoredered();
152
+
153
+ // Se necesita ordenación: usar colector ordenado
154
+ const ordered = numbers.sorted();
145
155
 
146
- const numbers = from([1, 2, 3, 4, 5]);
147
- const total = numbers.toUnoredered().collect(sumCollector); // 15
156
+ // Cuenta la cantidad de elementos
157
+ let count = Collector.full(
158
+ () => 0, // Valor inicial
159
+ (accumulator, element) => accumulator + element, // Acumular
160
+ (accumulator) => accumulator // Finalizar
161
+ );
162
+ count.collect(from([1,2,3,4,5])); // Cuenta desde un flujo
163
+ count.collect([1,2,3,4,5]); // Cuenta desde un objeto iterable
164
+
165
+ let find = Collector.shortable(
166
+ () => Optional.empty(), // Valor inicial
167
+ (element, index, accumulator) => accumulator.isPresent(), // Interrumpir
168
+ (accumulator, element, index) => Optional.of(element), // Acumular
169
+ (accumulator) => accumulator // Finalizar
170
+ );
171
+ find.collect(from([1,2,3,4,5])); // Encuentra el primer elemento
172
+ find.collect([1,2,3,4,5]); // Encuentra el primer elemento
148
173
  ```
149
174
 
150
175
  ### Métodos de fábrica de Semantic
@@ -155,6 +180,7 @@ const total = numbers.toUnoredered().collect(sumCollector); // 15
155
180
  | `empty<E>()` | Crea flujo vacío | O(1) | O(1) |
156
181
  | `fill<E>(element, count)` | Crea flujo lleno | O(n) | O(1) |
157
182
  | `from<E>(iterable)` | Crea flujo desde objeto iterable | O(1) | O(1) |
183
+ | `generate<E>(element, interrupt)` | Crea flujo generado | O(1) | O(1) |
158
184
  | `interval(period, delay?)` | Crea flujo de intervalo regular | O(1)* | O(1) |
159
185
  | `iterate<E>(generator)` | Crea flujo desde generador | O(1) | O(1) |
160
186
  | `range(start, end, step)` | Crea flujo de rango numérico | O(n) | O(1) |
@@ -231,6 +257,7 @@ const result = from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
231
257
  .map(n => n * 2) // Multiplica por 2
232
258
  .skip(1) // Salta el primero
233
259
  .limit(3) // Limita a 3 elementos
260
+ .toUnordered() // Prioridad rendimiento
234
261
  .toArray(); // Convierte a array
235
262
  // Resultado: [8, 12, 20]
236
263
 
@@ -244,45 +271,65 @@ const complexResult = range(1, 100, 1)
244
271
  .toArray(); // Convierte a array
245
272
  ```
246
273
 
247
- ## Métodos de Transformación de Colectores
274
+ ## Métodos de conversión semántica
248
275
 
249
- | Método | Descripción | Complejidad Temporal | Complejidad Espacial |
250
- |--------|-------------|---------------------|---------------------|
251
- | `toUnoredered()` | Convierte a colector no ordenado (prioridad rendimiento) | O(1) | O(1) |
252
- | `toOrdered()` | Convierte a colector ordenado | O(1) | O(1) |
253
- | `sorted()` | Ordena y convierte a colector ordenado | O(n log n) | O(n) |
254
- | `toWindow()` | Convierte a colector de ventana | O(1) | O(1) |
255
- | `toNumericStatistics()` | Convierte a estadísticas numéricas | O(1) | O(1) |
256
- | `toBigintStatistics()` | Convierte a estadísticas BigInt | O(1) | O(1) |
276
+ | Método | Descripción | Complejidad temporal | Complejidad espacial |
277
+ |------------|------------|------------|------------|
278
+ | `sorted()` | Convertir a colector ordenado | O(n log n) | O(n) |
279
+ | `toUnordered()` | Convertir a colector no ordenado | O(1) | O(1) |
280
+ | `toOrdered()` | Convertir a colector ordenado | O(1) | O(1) |
281
+ | `toNumericStatistics()` | Convertir a estadísticas numéricas | O(n) | O(1) |
282
+ | `toBigintStatistics()` | Convertir a estadísticas bigint | O(n) | O(1) |
283
+ | `toWindow()` | Convertir a colector de ventanas | O(1) | O(1) |
284
+ | `toCollectable()` | Convertir a `UnorderdCollectable` | O(n) | O(1) |
285
+ | `toCollectable(mapper)` | Convertir a collectable personalizado | O(n) | O(1) |
257
286
 
258
287
  ```typescript
259
- // Ejemplos de transformación de colectores
260
- const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
261
-
262
- // Prioridad rendimiento: Usar colector no ordenado
263
- const unordered = numbers
264
- .filter(n => n > 3)
265
- .toUnoredered();
266
-
267
- // Necesita orden: Usar colector ordenado
268
- const ordered = numbers.sorted();
269
-
270
- // Análisis estadístico: Usar colector estadístico
271
- const stats = numbers
272
- .toNumericStatistics();
273
-
274
- console.log(stats.mean()); // Promedio
275
- console.log(stats.median()); // Mediana
276
- console.log(stats.standardDeviation()); // Desviación estándar
277
-
278
- // Operaciones de ventana
279
- const windowed = numbers
280
- .toWindow()
281
- .tumble(3n); // Ventana de 3 elementos
282
-
283
- windowed.forEach(window => {
284
- console.log(window.toArray()); // Contenido de cada ventana
285
- });
288
+ // Convertir a array ordenado ascendente
289
+ from([6,4,3,5,2]) // Crea un flujo
290
+ .sorted() // Ordena el flujo en orden ascendente
291
+ .toArray(); // [2, 3, 4, 5, 6]
292
+
293
+ // Convertir a array ordenado descendente
294
+ from([6,4,3,5,2]) // Crea un flujo
295
+ .soted((a, b) => b - a) // Ordena el flujo en orden descendente
296
+ .toArray(); // [6, 5, 4, 3, 2]
297
+
298
+ // Redirigir a un array invertido
299
+ from([6,4,3,5,2])
300
+ .redirect((element, index) => -index) // Redirige a orden invertido
301
+ .toOrderd() // Mantiene el orden redirigido
302
+ .toArray(); // [2, 5, 3, 4, 6]
303
+
304
+ // Ignorar redirecciones para invertir el array
305
+ from([6,4,3,5,2])
306
+ .redirect((element, index) => -index) // Redirige a orden invertido
307
+ .toUnorderd() // Descarta el orden redirigido. Esta operación ignora las operaciones `redirect`, `reverse`, `shuffle` y `translate`
308
+ .toArray(); // [2, 5, 3, 4, 6]
309
+
310
+ // Invertir el flujo en un array
311
+ from([6, 4, 3, 5, 2])
312
+ .reverse() // Invierte el flujo
313
+ .toOrdered() // Garantiza el orden invertido
314
+ .toArray(); // [2, 5, 3, 4, 6]
315
+
316
+ // Sobrescribir el flujo barajado en un array
317
+ from([6, 4, 3, 5, 2])
318
+ .shuffle() // Baraja el flujo
319
+ .sorted() // Sobrescribe el orden barajado. Esta operación sobrescribe las operaciones `redirect`, `reverse`, `shuffle` y `translate`
320
+ .toArray(); // [2, 5, 3, 4, 6]
321
+
322
+ // Convertir a colector de ventanas
323
+ from([6, 4, 3, 5, 2]).toWindow();
324
+
325
+ // Convertir a estadísticas numéricas
326
+ from([6, 4, 3, 5, 2]).toNumericStatistics();
327
+
328
+ // Convertir a estadísticas bigint
329
+ from([6n, 4n, 3n, 5n, 2n]).toBigintStatistics();
330
+
331
+ // Define un colector personalizado para recolectar datos
332
+ let customizedCollector = from([1, 2, 3, 4, 5]).toCollectable((generator: Generator<E>) => new CustomizedCollector(generator));
286
333
  ```
287
334
 
288
335
  ## Métodos de Recolección de Collectable
package/readme.fr.md CHANGED
@@ -12,37 +12,43 @@ Contrairement au traitement synchrone traditionnel, Semantic adopte un mode de t
12
12
  npm install semantic-typescript
13
13
  ```
14
14
 
15
- ## Types de Base
15
+ ## Types de base
16
16
 
17
17
  | Type | Description |
18
18
  |------|-------------|
19
- | `Invalid<T>` | Type étendant null ou undefined |
20
- | `Valid<T>` | Type excluant null et undefined |
21
- | `MaybeInvalid<T>` | Type pouvant être null ou undefined |
22
- | `Primitive` | Collection de types primitifs |
23
- | `MaybePrimitive<T>` | Type pouvant être un primitif |
24
- | `OptionalSymbol` | Identificateur symbolique pour la classe Optional |
25
- | `SemanticSymbol` | Identificateur symbolique pour la classe Semantic |
26
- | `CollectorsSymbol` | Identificateur symbolique pour la classe Collector |
27
- | `CollectableSymbol` | Identificateur symbolique pour la classe Collectable |
28
- | `OrderedCollectableSymbol` | Identificateur symbolique pour la classe OrderedCollectable |
29
- | `WindowCollectableSymbol` | Identificateur symbolique pour la classe WindowCollectable |
30
- | `StatisticsSymbol` | Identificateur symbolique pour la classe Statistics |
31
- | `NumericStatisticsSymbol` | Identificateur symbolique pour la classe NumericStatistics |
32
- | `BigIntStatisticsSymbol` | Identificateur symbolique pour la classe BigIntStatistics |
33
- | `UnorderedCollectableSymbol` | Identificateur symbolique pour la classe UnorderedCollectable |
34
- | `Runnable` | Fonction sans paramètre ni valeur de retour |
35
- | `Supplier<R>` | Fonction sans paramètre retournant R |
36
- | `Functional<T, R>` | Fonction de transformation à un paramètre |
37
- | `Predicate<T>` | Fonction de prédicat à un paramètre |
19
+ | `Invalid<T>` | Type étendant `null` ou `undefined` |
20
+ | `Valid<T>` | Type excluant `null` et `undefined` |
21
+ | `MaybeInvalid<T>` | Type pouvant être `null` ou `undefined` |
22
+ | `Primitive` | Ensemble des types primitifs |
23
+ | `MaybePrimitive<T>` | Type pouvant être un type primitif |
24
+ | `OptionalSymbol` | Symbole identifiant de la classe `Optional` |
25
+ | `SemanticSymbol` | Symbole identifiant de la classe `Semantic` |
26
+ | `CollectorsSymbol` | Symbole identifiant de la classe `Collector` |
27
+ | `CollectableSymbol` | Symbole identifiant de la classe `Collectable` |
28
+ | `OrderedCollectableSymbol` | Symbole identifiant de la classe `OrderedCollectable` |
29
+ | `WindowCollectableSymbol` | Symbole identifiant de la classe `WindowCollectable` |
30
+ | `StatisticsSymbol` | Symbole identifiant de la classe `Statistics` |
31
+ | `NumericStatisticsSymbol` | Symbole identifiant de la classe `NumericStatistics` |
32
+ | `BigIntStatisticsSymbol` | Symbole identifiant de la classe `BigIntStatistics` |
33
+ | `UnorderedCollectableSymbol` | Symbole identifiant de la classe `UnorderedCollectable` |
34
+
35
+ ## Interfaces fonctionnelles
36
+
37
+ | Interface | Description |
38
+ |-----------|-------------|
39
+ | `Runnable` | Fonction sans paramètre ni valeur de retour |
40
+ | `Supplier<R>` | Fonction sans paramètre retournant `R` |
41
+ | `Functional<T, R>` | Fonction de transformation à un seul paramètre |
38
42
  | `BiFunctional<T, U, R>` | Fonction de transformation à deux paramètres |
39
- | `BiPredicate<T, U>` | Fonction de prédicat à deux paramètres |
40
- | `Comparator<T>` | Fonction de comparaison |
41
43
  | `TriFunctional<T, U, V, R>` | Fonction de transformation à trois paramètres |
42
- | `Consumer<T>` | Fonction consommatrice à un paramètre |
43
- | `BiConsumer<T, U>` | Fonction consommatrice à deux paramètres |
44
- | `TriConsumer<T, U, V>` | Fonction consommatrice à trois paramètres |
45
- | `Generator<T>` | Fonction génératrice |
44
+ | `Predicate<T>` | Fonction de prédicat à un seul paramètre |
45
+ | `BiPredicate<T, U>` | Fonction de prédicat à deux paramètres |
46
+ | `TriPredicate<T, U, V>` | Fonction de prédicat à trois paramètres |
47
+ | `Consumer<T>` | Fonction de consommation à un seul paramètre |
48
+ | `BiConsumer<T, U>` | Fonction de consommation à deux paramètres |
49
+ | `TriConsumer<T, U, V>` | Fonction de consommation à trois paramètres |
50
+ | `Comparator<T>` | Fonction de comparaison à deux paramètres |
51
+ | `Generator<T>` | Fonction génératrice (noyau et base) |
46
52
 
47
53
  ```typescript
48
54
  // Exemples d'utilisation des types
@@ -136,15 +142,34 @@ console.log(emptyOpt.orElse(100)); // Affiche 100
136
142
  | `Collector.shortable(identity, interruptor, accumulator, finisher)` | Crée un collecteur interruptible | O(1) | O(1) |
137
143
 
138
144
  ```typescript
139
- // Exemples d'utilisation de Collector
140
- const sumCollector = Collector.full(
141
- () => 0,
142
- (sum, num) => sum + num,
143
- result => result
144
- );
145
+ // Exemples de conversion de collecteurs
146
+ const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
147
+
148
+ // Priorité à la performance : utiliser un collecteur non ordonné
149
+ const unordered = numbers
150
+ .filter(n => n > 3)
151
+ .toUnoredered();
152
+
153
+ // Besoin de tri : utiliser un collecteur ordonné
154
+ const ordered = numbers.sorted();
145
155
 
146
- const numbers = from([1, 2, 3, 4, 5]);
147
- const total = numbers.toUnoredered().collect(sumCollector); // 15
156
+ // Compte le nombre d'éléments
157
+ let count = Collector.full(
158
+ () => 0, // Valeur initiale
159
+ (accumulator, element) => accumulator + element, // Accumuler
160
+ (accumulator) => accumulator // Terminer
161
+ );
162
+ count.collect(from([1,2,3,4,5])); // Compte depuis un flux
163
+ count.collect([1,2,3,4,5]); // Compte depuis un objet itérable
164
+
165
+ let find = Collector.shortable(
166
+ () => Optional.empty(), // Valeur initiale
167
+ (element, index, accumulator) => accumulator.isPresent(), // Interrompre
168
+ (accumulator, element, index) => Optional.of(element), // Accumuler
169
+ (accumulator) => accumulator // Terminer
170
+ );
171
+ find.collect(from([1,2,3,4,5])); // Trouve le premier élément
172
+ find.collect([1,2,3,4,5]); // Trouve le premier élément
148
173
  ```
149
174
 
150
175
  ### Méthodes d'usine de Semantic
@@ -155,6 +180,7 @@ const total = numbers.toUnoredered().collect(sumCollector); // 15
155
180
  | `empty<E>()` | Crée un flux vide | O(1) | O(1) |
156
181
  | `fill<E>(element, count)` | Crée un flux rempli | O(n) | O(1) |
157
182
  | `from<E>(iterable)` | Crée un flux depuis un objet itérable | O(1) | O(1) |
183
+ | `generate<E>(element, interrupt)` | Crée un flux générateur | O(1) | O(1) |
158
184
  | `interval(period, delay?)` | Crée un flux d'intervalle régulier | O(1)* | O(1) |
159
185
  | `iterate<E>(generator)` | Crée un flux depuis un générateur | O(1) | O(1) |
160
186
  | `range(start, end, step)` | Crée un flux de plage numérique | O(n) | O(1) |
@@ -231,6 +257,7 @@ const result = from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
231
257
  .map(n => n * 2) // Multiplie par 2
232
258
  .skip(1) // Saute le premier
233
259
  .limit(3) // Limite à 3 éléments
260
+ .toUnordered() // Convertit en collecteur non ordonné
234
261
  .toArray(); // Convertit en tableau
235
262
  // Résultat: [8, 12, 20]
236
263
 
@@ -244,45 +271,65 @@ const complexResult = range(1, 100, 1)
244
271
  .toArray(); // Convertit en tableau
245
272
  ```
246
273
 
247
- ## Méthodes de Transformation de Collecteurs
274
+ ## Méthodes de conversion sémantique
248
275
 
249
- | Méthode | Description | Complexité Temporelle | Complexité Spatiale |
250
- |---------|-------------|----------------------|---------------------|
251
- | `toUnoredered()` | Convertit en collecteur non ordonné (priorité performance) | O(1) | O(1) |
252
- | `toOrdered()` | Convertit en collecteur ordonné | O(1) | O(1) |
253
- | `sorted()` | Trie et convertit en collecteur ordonné | O(n log n) | O(n) |
254
- | `toWindow()` | Convertit en collecteur de fenêtre | O(1) | O(1) |
255
- | `toNumericStatistics()` | Convertit en statistiques numériques | O(1) | O(1) |
256
- | `toBigintStatistics()` | Convertit en statistiques BigInt | O(1) | O(1) |
276
+ | Méthode | Description | Complexité temporelle | Complexité spatiale |
277
+ |------------|------------|------------|------------|
278
+ | `sorted()` | Convertir en collecteur ordonné | O(n log n) | O(n) |
279
+ | `toUnordered()` | Convertir en collecteur non ordonné | O(1) | O(1) |
280
+ | `toOrdered()` | Convertir en collecteur ordonné | O(1) | O(1) |
281
+ | `toNumericStatistics()` | Convertir en statistiques numériques | O(n) | O(1) |
282
+ | `toBigintStatistics()` | Convertir en statistiques bigint | O(n) | O(1) |
283
+ | `toWindow()` | Convertir en collecteur de fenêtres | O(1) | O(1) |
284
+ | `toCollectable()` | Convertir en `UnorderdCollectable` | O(n) | O(1) |
285
+ | `toCollectable(mapper)` | Convertir en collectable personnalisé | O(n) | O(1) |
257
286
 
258
287
  ```typescript
259
- // Exemples de transformation de collecteurs
260
- const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
261
-
262
- // Priorité performance: Utiliser collecteur non ordonné
263
- const unordered = numbers
264
- .filter(n => n > 3)
265
- .toUnoredered();
266
-
267
- // Nécessite un tri: Utiliser collecteur ordonné
268
- const ordered = numbers.sorted();
269
-
270
- // Analyse statistique: Utiliser collecteur statistique
271
- const stats = numbers
272
- .toNumericStatistics();
273
-
274
- console.log(stats.mean()); // Moyenne
275
- console.log(stats.median()); // Médiane
276
- console.log(stats.standardDeviation()); // Écart-type
277
-
278
- // Opérations de fenêtre
279
- const windowed = numbers
280
- .toWindow()
281
- .tumble(3n); // Fenêtre de 3 éléments
282
-
283
- windowed.forEach(window => {
284
- console.log(window.toArray()); // Contenu de chaque fenêtre
285
- });
288
+ // Convertir en tableau trié par ordre croissant
289
+ from([6,4,3,5,2]) // Crée un flux
290
+ .sorted() // Trie le flux par ordre croissant
291
+ .toArray(); // [2, 3, 4, 5, 6]
292
+
293
+ // Convertir en tableau trié par ordre décroissant
294
+ from([6,4,3,5,2]) // Crée un flux
295
+ .soted((a, b) => b - a) // Trie le flux par ordre décroissant
296
+ .toArray(); // [6, 5, 4, 3, 2]
297
+
298
+ // Rediriger vers un tableau inversé
299
+ from([6,4,3,5,2])
300
+ .redirect((element, index) => -index) // Redirige en ordre inversé
301
+ .toOrderd() // Conserve l’ordre redirigé
302
+ .toArray(); // [2, 5, 3, 4, 6]
303
+
304
+ // Ignorer les redirections pour inverser le tableau
305
+ from([6,4,3,5,2])
306
+ .redirect((element, index) => -index) // Redirige en ordre inversé
307
+ .toUnorderd() // Supprime l’ordre redirigé. Cette opération ignore les opérations `redirect`, `reverse`, `shuffle` et `translate`
308
+ .toArray(); // [2, 5, 3, 4, 6]
309
+
310
+ // Inverser le flux en tableau
311
+ from([6, 4, 3, 5, 2])
312
+ .reverse() // Inverse le flux
313
+ .toOrdered() // Garantit l’ordre inversé
314
+ .toArray(); // [2, 5, 3, 4, 6]
315
+
316
+ // Écraser le flux mélangé dans un tableau
317
+ from([6, 4, 3, 5, 2])
318
+ .shuffle() // Mélange le flux
319
+ .sorted() // Écrase l’ordre mélangé. Cette opération écrase les opérations `redirect`, `reverse`, `shuffle` et `translate`
320
+ .toArray(); // [2, 5, 3, 4, 6]
321
+
322
+ // Convertir en collecteur de fenêtres
323
+ from([6, 4, 3, 5, 2]).toWindow();
324
+
325
+ // Convertir en statistiques numériques
326
+ from([6, 4, 3, 5, 2]).toNumericStatistics();
327
+
328
+ // Convertir en statistiques bigint
329
+ from([6n, 4n, 3n, 5n, 2n]).toBigintStatistics();
330
+
331
+ // Définit un collecteur personnalisé pour collecter les données
332
+ let customizedCollector = from([1, 2, 3, 4, 5]).toCollectable((generator: Generator<E>) => new CustomizedCollector(generator));
286
333
  ```
287
334
 
288
335
  ## Méthodes de Collecte de Collectable