Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e924de64f | |||
| 485d289e95 | |||
| 35b04e088e | |||
| 76965cc3f0 |
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -99,7 +99,7 @@ void print_menu(struct array *arr)
|
|||||||
foreach(arr, (acceptor)&print_arr);
|
foreach(arr, (acceptor)&print_arr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
@@ -143,7 +143,7 @@ int main(void)
|
|||||||
|
|
||||||
free(arr.data);
|
free(arr.data);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -5,9 +5,12 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
struct array *sort(struct array *arr, comparator f)
|
struct array *sort(struct array *arr, comparator f)
|
||||||
{
|
{
|
||||||
|
if(!arr || !f) return NULL;
|
||||||
|
|
||||||
void *temp = malloc(arr->elem_size);
|
void *temp = malloc(arr->elem_size);
|
||||||
|
if(!temp) return NULL;
|
||||||
|
|
||||||
|
if (arr->len > 0) {
|
||||||
for(size_t index1 = 0; index1 < arr->len - 1; index1 ++ ){
|
for(size_t index1 = 0; index1 < arr->len - 1; index1 ++ ){
|
||||||
|
|
||||||
for(size_t index2 = index1; index2 < arr->len; index2 ++){
|
for(size_t index2 = index1; index2 < arr->len; index2 ++){
|
||||||
@@ -22,6 +25,7 @@ struct array *sort(struct array *arr, comparator f)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
free(temp);
|
free(temp);
|
||||||
return arr;
|
return arr;
|
||||||
@@ -30,6 +34,8 @@ struct array *sort(struct array *arr, comparator f)
|
|||||||
|
|
||||||
struct array *map(struct array *arr, size_t output_size, mapper f)
|
struct array *map(struct array *arr, size_t output_size, mapper f)
|
||||||
{
|
{
|
||||||
|
if(!arr || !f)return NULL;
|
||||||
|
|
||||||
void *data = calloc(arr->len, output_size);
|
void *data = calloc(arr->len, output_size);
|
||||||
if(!data) return NULL;
|
if(!data) return NULL;
|
||||||
|
|
||||||
@@ -51,6 +57,8 @@ struct array *map(struct array *arr, size_t output_size, mapper f)
|
|||||||
|
|
||||||
struct array *filter(struct array *arr, predicate f)
|
struct array *filter(struct array *arr, predicate f)
|
||||||
{
|
{
|
||||||
|
if(!arr || !f) return NULL;
|
||||||
|
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
int flon = 0;
|
int flon = 0;
|
||||||
while(index != arr->len){
|
while(index != arr->len){
|
||||||
@@ -65,8 +73,8 @@ struct array *filter(struct array *arr, predicate f)
|
|||||||
index = 0;
|
index = 0;
|
||||||
void *data1 = calloc(flon, arr->elem_size);
|
void *data1 = calloc(flon, arr->elem_size);
|
||||||
if(!data1 && flon > 0) return NULL;
|
if(!data1 && flon > 0) return NULL;
|
||||||
size_t index2 = 0;
|
|
||||||
|
|
||||||
|
size_t index2 = 0;
|
||||||
while(index != arr->len){
|
while(index != arr->len){
|
||||||
void *cur = arr->data + index * arr->elem_size;
|
void *cur = arr->data + index * arr->elem_size;
|
||||||
|
|
||||||
@@ -87,6 +95,8 @@ struct array *filter(struct array *arr, predicate f)
|
|||||||
|
|
||||||
void *reduce(struct array *arr, void *start_value, reducer f)
|
void *reduce(struct array *arr, void *start_value, reducer f)
|
||||||
{
|
{
|
||||||
|
if(!arr || !start_value || !f) return NULL;
|
||||||
|
|
||||||
void *rslt = start_value;
|
void *rslt = start_value;
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
|
|
||||||
@@ -102,6 +112,7 @@ void *reduce(struct array *arr, void *start_value, reducer f)
|
|||||||
|
|
||||||
void foreach(struct array *arr, acceptor f)
|
void foreach(struct array *arr, acceptor f)
|
||||||
{
|
{
|
||||||
|
if(!arr || !f) return;
|
||||||
// arr.data est un array de x valeurs
|
// arr.data est un array de x valeurs
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user