Commit 119290e1 authored by orestis.malaspin's avatar orestis.malaspin

made assignement more explicit

parent da70b540
Pipeline #12745 passed with stage
in 40 seconds
......@@ -87,19 +87,19 @@ Puis il faudra implémenter les fonctions suivantes:
1. Une fonction `lst_vector_init()`{.C} qui retourne un vecteur vide.
2. Une fonction `lst_vector_length(lst_vector *v)`{.C} qui retourne la longueur d'un vecteur.
3. Une fonction `lst_vector_push(lst_vector *v, void *data)`{.C} qui ajoute `data` au début du vecteur et le retourne.
4. Une fonction `lst_vector_pop(lst_vector *v)`{.C} qui retire le premier élément du vecteur passé en argument et le retourne.
4. Une fonction `lst_vector_pop(lst_vector *v)`{.C} qui retire le premier élément du vecteur passé en argument et retourne les données qu'il contient.
5. Une fonction `lst_vector_set(lst_vector *v, int index, void *data)`{.C} qui assigne la `index`-ème valeur du vecteur à la valeur de `data` et retourne le vecteur.
6. Une fonction `lst_vector_get(lst_vector *v, int index)`{.C} qui retourne le `index`-ème élément du vecteur (sans le retirer du vecteur).
7. Une fonction `lst_vector_remove(lst_vector *v, int index)`{.C} qui retire le `index`-ème élément du vecteur et le retourne.
6. Une fonction `lst_vector_get(lst_vector *v, int index)`{.C} qui retourne les données contenues dans le `index`-ème élément du vecteur (sans le retirer l'élément du vecteur).
7. Une fonction `lst_vector_remove(lst_vector *v, int index)`{.C} qui retire l'`index`-ème élément du vecteur et retourne les données qu'il contient.
8. Une fonction `lst_vector_insert(lst_vector *v, void *data, int index)`{.C} qui insère `data` au `index`-ème indice du vecteur et retourne le vecteur.
9. Une fonction `lst_vector_empty(lst_vector *v)`{.C} qui vide un vecteur, libère la mémoire et met la tête à `NULL`{.C}.
Puis implémenter également deux fonctions un peu plus complexes syntaxiquement.
10. Une fonction `lst_vector_map(lst_vector *v, void *(*f)(void *))`{.C} qui itère sur tous les éléments du vecteur `v`, leur applique
la fonction `f`, et retourne un nouveau vecteur avec le résultat.
11. Une fonction `lst_vector_filter(lst_vector *v, bool (*f)(void *))`{.C} applique le prédicat `f` sur tous les
éléments d'un vecteur et retourne ceux qui le satisfont dans un nouveau vecteur.
10. Une fonction `lst_vector_map(lst_vector *v, void *(*f)(void *))`{.C} qui itère sur tous les éléments du vecteur `v`, applique
la fonction `f` sur les données de chaque élément, et retourne un nouveau vecteur avec le résultat.
11. Une fonction `lst_vector_filter(lst_vector *v, bool (*f)(void *))`{.C} applique le prédicat `f` sur toutes les
données contenues dans les éléments d'un vecteur et retourne ceux qui le satisfont dans un nouveau vecteur.
Afin d'utiliser les fonctions `lst_vector_map()`{.C} et `lst_vector_filter()`{.C} vous devez écrire deux fonctions. La première, `square`{.C},
calculera le carré d'un élément. La seconde, `is_even`{.C},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment