diff options
Diffstat (limited to 'rushs/evalexpr/functional_programming/foldr.c')
| -rw-r--r-- | rushs/evalexpr/functional_programming/foldr.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/rushs/evalexpr/functional_programming/foldr.c b/rushs/evalexpr/functional_programming/foldr.c new file mode 100644 index 0000000..c232410 --- /dev/null +++ b/rushs/evalexpr/functional_programming/foldr.c @@ -0,0 +1,10 @@ +#include "functional_programming.h" + +int foldr(int *array, size_t len, int (*func)(int, int)) +{ + if (len == 1) + { + return (*func)(array[0], 0); + } + return (*func)(array[0], foldr(array + 1, len - 1, func)); +} |
