summaryrefslogtreecommitdiff
path: root/rushs/tinyprintf/functional_programming/foldr.c
blob: c232410fd62ea651f2cfbd25ffa85137a89fe519 (plain)
1
2
3
4
5
6
7
8
9
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));
}