Questions tagged «lambda»

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

9
List <T>顺序按字母顺序
我在Framework 3.5上使用C#。我希望快速对Generic进行排序List&lt;T&gt;。就本例而言,假设我有一个Person具有姓氏属性的类型的列表。如何使用Lambda表达式对该列表进行排序? List&lt;Person&gt; people = PopulateList(); people.OrderBy(???? =&gt; ?????)
441 c#  generics  list  lambda  sorting 

21
反映参数名称:滥用C#lambda表达式还是语法光彩?
我正在看MvcContrib Grid组件,我被Grid语法中使用的句法把戏迷住了,但同时又被它击退了: .Attributes(style =&gt; "width:100%") 上面的语法将生成的HTML的style属性设置为width:100%。现在,如果您要注意,则从表达式中参数的名称推导出“ style”(在任何地方都未指定)!我不得不对此进行深入研究,并发现“魔术”发生的位置: Hash(params Func&lt;object, TValue&gt;[] hash) { foreach (var func in hash) { Add(func.Method.GetParameters()[0].Name, func(null)); } } 因此,确实,代码使用形式上的,编译时的参数名称来创建属性名称-值对的字典。最终的语法构造确实非常具有表现力,但同时也非常危险。lambda表达式的一般用法允许替换使用的名称而没有副作用。我在书中看到一个例子,说collection.ForEach(book =&gt; Fire.Burn(book))我知道我可以用代码编写collection.ForEach(log =&gt; Fire.Burn(log)),这意味着相同的事情。但是突然之间有了MvcContrib Grid语法,我发现了可以根据我为变量选择的名称主动查找并做出决策的代码! 那么,这是C#3.5 / 4.0社区和lambda表达式爱好者的惯常做法吗?还是我不必担心一个流氓特技特立独行者?

9
什么时候应该在ECMAScript 6中使用Arrow函数?
这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)中考虑过代码风格并且已经使用过该语言的人。 通过() =&gt; {}和,function () {}我们得到了两种非常相似的方法来在ES6中编写函数。在其他语言中,lambda函数通常通过匿名来区分自己,但是在ECMAScript中,任何函数都可以是匿名的。两种类型中的每一种都有唯一的使用域(即,当this需要显式绑定或显式不绑定时)。在这些域之间,有很多情况下两种表示法都会起作用。 ES6中的箭头功能至少有两个限制: 不要用工作new创建时,不能使用prototype 固定this绑定到初始化范围 除了这两个限制,箭头函数在理论上几乎可以替换任何地方的常规函数​​。在实践中使用它们的正确方法是什么?应该使用箭头功能,例如: “无论它们在哪里工作”,即在每个地方函数不必与this变量无关,我们也没有创建对象。 仅需要绑定到特定范围的“任何需要它们的地方”,即事件侦听器,超时 具有“短”功能但不具有“长”功能 仅对于不包含另一个箭头功能的功能 我正在寻找的是在将来的ECMAScript版本中选择适当的功能符号的指南。指南必须明确,以便可以向团队中的开发人员讲授,并且要保持一致,以便不需要从一个功能符号到另一个功能符号之间不断地来回重构。

14
如何定义Java 8中将lambda作为参数的方法?
在Java 8中,可以将方法创建为Lambda表达式,并可以通过引用将其传递(在后台进行一些工作)。在线上有很多示例,其中创建了lambda并将其与方法一起使用,但没有如何使用lambda作为参数的方法的示例。它的语法是什么? MyClass.method((a, b) -&gt; a+b); class MyClass{ //How do I define this method? static int method(Lambda l){ return l(5, 10); } }
363 java  lambda  java-8 


13
最终和有效最终之间的区别
我在用Java 8玩lambda,遇到警告local variables referenced from a lambda expression must be final or effectively final。我知道,当我在匿名类中使用变量时,它们必须在外部类中为final,但仍然-final和有效的final之间有什么区别?

14
何时使用lambda,何时使用Proc.new?
在Ruby 1.8中,一方面proc / lambda之间存在细微的差异,另一方面Proc.new。 这些差异是什么? 您可以就如何决定选择哪一项提供指导吗? 在Ruby 1.9中,proc和lambda是不同的。这是怎么回事?
336 ruby  lambda  proc 

15
Python中没有多行Lambda:为什么不呢?
我听说它说不能在Python中添加多行lambda,因为它们会在语法上与Python中的其他语法结构发生冲突。我今天在公共汽车上考虑这个问题,意识到我想不出一个与多行lambda冲突的Python结构。考虑到我非常了解该语言,这令我感到惊讶。 现在,我确定Guido有一个理由不在语言中包含多行lambda,而是出于好奇:在什么情况下包含多行lambda会导致歧义?我所听到的是正确的,还是Python不允许多行lambda的其他原因?
335 python  syntax  lambda 

13
从Java 8流中断还是返回forEach?
当在上使用外部迭代时,Iterable我们使用break或return通过增强的for-each循环进行以下操作: for (SomeObject obj : someObjects) { if (some_condition_met) { break; // or return obj } } 我们如何break或在Java 8 lambda表达式中return使用内部迭代,例如: someObjects.forEach(obj -&gt; { //what to do here? })
312 java  foreach  lambda  java-8 

15
C#Lambda表达式:为什么要使用它们?
我已经快速阅读了Microsoft Lambda Expression文档。 但是,这种示例有助于我更好地理解: delegate int del(int i); del myDelegate = x =&gt; x * x; int j = myDelegate(5); //j = 25 但是,我仍然不明白为什么它是如此创新。这只是“方法变量”结束时消失的方法,对吗?为什么要使用此方法而不是实际方法?
309 c#  c#-3.0  lambda 

17
如何从Java 8流中引发CHECKED异常?
如何从Java 8流/ lambda中抛出CHECKED异常? 换句话说,我想使代码像这样编译: public List&lt;Class&gt; getClasses() throws ClassNotFoundException { List&lt;Class&gt; classes = Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String") .map(className -&gt; Class.forName(className)) .collect(Collectors.toList()); return classes; } 该代码无法编译,因为Class.forName()上面的方法抛出ClassNotFoundException,因此。 请注意,我不想将已检查的异常包装在运行时异常中,而是抛出已包装的未检查的异常。我想抛出被检查的异常本身,而又不添加丑陋的try/ catches流。

12
使用Lambda / Linq对对象排序列表
我在字符串中有“按属性排序”的名称。我将需要使用Lambda / Linq对对象列表进行排序。 例如: public class Employee { public string FirstName {set; get;} public string LastName {set; get;} public DateTime DOB {set; get;} } public void Sort(ref List&lt;Employee&gt; list, string sortBy, string sortDirection) { //Example data: //sortBy = "FirstName" //sortDirection = "ASC" or "DESC" if (sortBy == "FirstName") { list …

8
如何使用linq扩展方法执行左外部联接
假设我有一个这样的左外部联接: from f in Foo join b in Bar on f.Foo_Id equals b.Foo_Id into g from result in g.DefaultIfEmpty() select new { Foo = f, Bar = result } 如何使用扩展方法表达相同的任务?例如 Foo.GroupJoin(Bar, f =&gt; f.Foo_Id, b =&gt; b.Foo_Id, (f,b) =&gt; ???) .Select(???)
272 c#  linq-to-sql  lambda 

1
“ int main(){((([](){})());}”如何有效C ++?
最近,我遇到了以下深奥的代码。 int main(){(([](){})());} 重新格式化,如下所示以使其更具可读性: int main(){ (([](){})()); // Um... what?!?! } 但是我无法理解(([](){})())有效代码的有效性。 它看起来不像函数指针语法。 这不可能是操作员重载的把戏。代码按原样编译。 Google在这种全符号搜索中并没有太大帮助。但是它可以在Visual Studio 2010中编译,但不输出任何内容。没有错误,也没有警告。因此,它看起来像有效的代码。 在Javascript和C函数指针之外,我从未见过任何如此奇怪的有效代码。 有人可以解释这是如何有效的C ++吗?
271 c++  c++11  lambda  syntax 

10
在默认情况下,为什么C ++ 11的lambda要求“ mutable”关键字进行按值捕获?
简短示例: #include &lt;iostream&gt; int main() { int n; [&amp;](){n = 10;}(); // OK [=]() mutable {n = 20;}(); // OK // [=](){n = 10;}(); // Error: a by-value capture cannot be modified in a non-mutable lambda std::cout &lt;&lt; n &lt;&lt; "\n"; // "10" } 问题:为什么我们需要mutable关键字?与传递给命名函数的传统参数完全不同。背后的原理是什么? 我给人的印象是,按值捕获的全部目的是允许用户更改临时值-否则,使用按引用捕获几乎总是更好,不是吗? 有什么启示吗? (顺便说一下,我正在使用MSVC2010。AFAIK,这应该是标准的)
256 c++  lambda  c++11 

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.