Questions tagged «lambda»

不要使用AWS服务(对于这些问题,请使用[aws-lambda]!)Lambda是匿名函数或编程语言(例如Lisp,C#,C ++,Lua,Python,Ruby,JavaScript或Java)中的闭包。(也就是lambda表达式。)

4
编译的C#Lambda表达式性能
考虑对集合进行以下简单操作: static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i => i % 2 == 0).Where(i => i > 5); 现在让我们使用表达式。以下代码大致等效: static void UsingLambda() { Func<IEnumerable<int>, IEnumerable<int>> lambda = l => l.Where(i => i % 2 == …

3
Lambda的显式返回类型
当我尝试编译此代码(VS2010)时,出现以下错误: error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results<std::string::const_iterator> what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with a hash (#) // or have nothing but white-space …

2
为什么不能在lambda中捕获此按引用('&this')?
我了解this在lambda中捕获(修改对象属性)的正确方法如下: auto f = [this] () { /* ... */ }; 但我对我所看到的以下特性感到好奇: class C { public: void foo() { // auto f = [] () { // this not captured auto f = [&] () { // why does this work? // auto f = [&this] () { // Expected …
91 c++  c++11  lambda 

1
来自Pylint的Cell-var-from-loop警告
对于以下代码: for sort_key, order in query_data['sort']: results.sort(key=lambda k: get_from_dot_path(k, sort_key), reverse=(order == -1)) Pylint报告了一个错误: 循环中定义的单元变量sort_key(cell-var-from-loop) 有人可以暗示这里发生了什么吗?根据pylint源代码,描述为: 闭包中使用的变量在循环中定义。这将导致所有闭包对封闭变量使用相同的值。 但是我不知道这意味着什么。谁能举例说明这个问题?

6
有什么理由不使用全局lambda吗?
我们有一个函数在其内部使用了非捕获的lambda,例如: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } 现在,lambda实现的功能已在其他地方使用,因此我将把lambda移出foo()全局/命名空间范围。我可以将其保留为lambda,使其成为复制粘贴选项,也可以将其更改为适当的功能: auto bar = [](int a, int b){ return a + b; } // option 1 int bar(int a, int b){ return a + b; …
89 c++  lambda 

5
为什么lambda的大小为1个字节?
我正在使用C ++中的一些lambda进行内存存储,但是我对它们的大小有些不解。 这是我的测试代码: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << sizeof(f) << std::endl; } 您可以在此处运行它:http : //fiddle.jyt.io/github/b13f682d1237eb69ebdc60728bb52598 输出是: 17 0x7d90ba8f626f 1 这表明我的λ大小为1。 这怎么可能? lambda至少不应该是其实现的指针吗?
89 c++  c++11  lambda  c++14  sizeof 

7
什么是Lambda语言?
我在阅读“ JavaScript:好的部分”,作者提到JavaScript是要发布的第一种lambda语言。 JavaScript的函数是具有(主要是)词法作用域的一流对象。JavaScript是第一种成为主流的Lambda语言。内心深处,与Lisp和Scheme相比,JavaScript与Java有更多的共同点。是C的衣服上的Lisp。这使得JavaScript是非常强大的语言。 我没有得到什么是lambda语言。这种语言的特性是什么,它与Java,C,C ++和Php等语言有什么不同?

6
如何在LINQ Lambda中的多个表之间执行Join
我试图在LINQ中的多个表之间执行联接。我有以下课程: Product {Id, ProdName, ProdQty} Category {Id, CatName} ProductCategory{ProdId, CatId} //association table 我用下面的代码(其中product,category和productcategory是在上述类的实例): var query = product.Join(productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new {product = p, productcategory = pc}) .Join(category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new { productproductcategory = ppc, category = …

6
如何用匿名方法返回值?
这失败了 string temp = () => {return "test";}; 与错误 无法将lambda表达式转换为“字符串”类型,因为它不是委托类型 错误是什么意思,我该如何解决?
89 c#  .net  lambda 

3
将Entity Framework 4中的Include与lambda表达式一起使用
我看过许多有关如何解决此问题的文章,这些文章都与CTP4有关,或者添加了我自己的扩展方法。 是否存在“官方” EF4包含方式在include(用于第一级关系以及第二级及更高级别)中使用lambda表达式,还是最终未包含在RTM中? 它只有一个-我将很高兴学习如何做,因为现在在我的代码中使用lambda表达式(使用#system.data.entity#system.data.linq)仍然可以给我: 无法将lambda表达式转换为“字符串”类型,因为它不是以下类型的委托类型: var customers = from c in context.Customers.Include(c=>c.Phone)

6
函数返回lambda表达式
我想知道是否有可能在C ++ 11中编写一个返回lambda函数的函数。当然,一个问题是如何声明这种功能。每个lambda都有一个类型,但是该类型在C ++中无法表达。我认为这不起作用: auto retFun() -> decltype ([](int x) -> int) { return [](int x) { return x; } } 也没有: int(int) retFun(); 我不知道从lambda到函数指针等的任何自动转换。唯一的解决方案是手工制作函数对象并返回它吗?
88 c++  function  c++11  lambda 

6
为什么我不能在C ++ 11中创建Lambda向量(相同类型)?
我试图创建一个lambda向量,但是失败了: auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 直到第2行,它编译正常。但是第3行给出了编译错误: 错误:没有匹配的函数调用'std :: vector <main():: <lambda()>> :: push_back(main():: <lambda()>)' 我不需要函数指针的向量或函数对象的向量。但是,封装真正的lambda表达式的功能对象的矢量对我有用。这可能吗?
88 c++  vector  lambda  c++11 

12
Java 8 Lambda从列表中获取和删除元素
鉴于元素的列表,我想用一个给定的属性来获取元素,并从列表中删除。我发现的最佳解决方案是: ProducerDTO p = producersProcedureActive .stream() .filter(producer -> producer.getPod().equals(pod)) .findFirst() .get(); producersProcedureActive.remove(p); 是否可以在lambda表达式中组合get和remove?

7
在Ruby块中使用“返回”
我正在尝试将Ruby 1.9.1用于嵌入式脚本语言,以便将“最终用户”代码写入Ruby块中。与此相关的一个问题是,我希望用户能够在块中使用'return'关键字,因此他们不必担心隐式的返回值。考虑到这一点,这是我想做的事情: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 如果在上面的示例中使用“ return”,则会收到LocalJumpError。我知道这是因为所讨论的块是Proc而不是lambda。如果删除“ return”,该代码将起作用,但在这种情况下,我真的更希望能够使用“ return”。这可能吗?我尝试将块转换为lambda,但结果是相同的。

7
Task.Run是否有参数?
我正在从事一个多任务网络项目,并且是的新手Threading.Tasks。我实现了一个简单的方法Task.Factory.StartNew(),不知道该如何处理Task.Run()? 这是基本代码: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); 我System.Threading.Tasks.Task在对象浏览器中进行了调查,但找不到Action<T>相似的参数。只有Action这需要void参数,没有类型。 只有两件事是相似的:static Task Run(Action action)并且static Task Run(Func<Task> function)不能同时发布参数。 是的,我知道我可以创建一个简单的扩展方法,但我的主要问题是,我们可以把它写在一行用Task.Run()?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.