LAMBDA防爆pressions [英] Lambda Expressions

查看:152
本文介绍了LAMBDA防爆pressions的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以解释我的lambda前pressions&安培;他们可用于。我用Google搜索它和放大器;有一个大概的了解。大部分的例子给出了C#code。如何在普通的旧的C拉姆达前pressions ...?

Can somebody explain me lambda expressions & what they can be used for. I have googled for it & have a rough idea. most of the examples give c# code. How about lambda expressions in plain old C...?

推荐答案

实际上有两件事被称为拉姆达前pressions,这是相当松散的:

There are actually two things called "lambda expressions", which are rather loosely related:


  1. LAMBDA前pressions是演算并密切涉及到函数式编程

  1. Lambda expressions are fundamental part of lambda calculus and are closely related to functional programming

在命令式语言,拉姆达前pressions通常是匿名方法的同义词。在C#中,比如你可以通过拉姆达前pression作为参数(即一个前pression本身,而不是它的结果。)

In imperative languages, lambda expressions are usually synonyms for anonymous methods. In C#, for example you can pass lambda expression (ie. an expression itself, not just its result) as an argument:

C#:

someCollection.Apply (x => 2*x); // apply expression to every object in collection
// equivalent to 
someCollection.Apply (delegate (int x) { return 2 * X; });

话虽如此,C不支持匿名方法。你可以,但是,使用函数指针来实现类似的结果:

Having said that, C does not support anonymous methods. You can, however, use function pointers to achieve similar results:

int multiply (int x)
{
    return 2 * x;
}

...
collection_apply (some_collection, multiply);

这篇关于LAMBDA防爆pressions的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆