读书人

C语言兑现的mapreduce小程序

发布时间: 2012-06-27 14:20:08 作者: rapoo

C语言实现的mapreduce小程序

?

#include <stdio.h>typedef int (*mapFunction)(int);typedef int (*reduceFunction)(int,int);#define ERROR -1void map(mapFunction func, int *list, int len){int i;for(i=0; i<len; i++){list[i]=func(list[i]);}}int reduce(reduceFunction func, int *list, int len){if(len <= 0){return ERROR;}int retVal = 0;int i;for(i=0; i<len; i++){retVal=func(retVal, list[i]);}return retVal;}int square(int i){return i*i;}int add(int i, int j){return i+j;}int main(int argc, char* argv[]){int array[5];int i;for(i=0; i<5; i++){array[i]=i;}mapFunction mapFuncPointer = (mapFunction)□reduceFunction reduceFuncPointer = (reduceFunction)&add;map(mapFuncPointer, array, 5);int result = reduce(reduceFuncPointer, array, 5);printf("The result is %d\n", result);return 0;}

读书人网 >C语言

热点推荐