前言
先来啰嗦几句,身边的朋友,同事都喜欢在文章上记录自己在学习计算机编程技术路程上的一些问题和心得。就我个人而言,这是个好习惯,特别是在计算机编程领域,技术方向种类繁多,永无止境。所以,我也开始我人生中第一份文章,希望看到的朋友多多鼓励和讨论,在此谢过。对于计算技术,越是深入越越数学挂钩,想达到大神级别,嗯,我是有自知之明的。计算机技术虽然之多,并不需要我们每一个领域每一项技术都特别的精通。当然,能做到,我由衷的佩服和羡慕,只要我们专注于某些技术领域并能达到“精通”两个字就已经很不容易,毕竟精神和身体耗损太大,一般人难以达到包罗万象。个人特别喜欢C语言,用其研发已有6年多的时间,一直很热衷,时不时的学习其它语言,使用C语言来模仿它们有意思的技术。下面就由读者和我一起来看看使用C语言实现Lambda表达式。
什么是Lambda表达式
“Lambda 表达式”(Lambda Expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。
C-Lambda表达式
C语言实现Lambda表达式,一般来说都是通过宏定义来的,这样就可以使用类似Lambda(...)这样形式,请看下面:
#define cgs_lambda( return_type, function_body) \
({return_type cgs_lambda_func function_body