Questions tagged «lambda»

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

11
从Lambda内部修改局部变量
修改中的局部变量forEach会产生编译错误: 正常 int ordinal = 0; for (Example s : list) { s.setOrdinal(ordinal); ordinal++; } 与Lambda int ordinal = 0; list.forEach(s -> { s.setOrdinal(ordinal); ordinal++; }); 任何想法如何解决这个问题?
114 java  lambda  java-8 

7
Java 8:java.util.function中的TriFunction(和亲属)在哪里?还是有什么选择?
我看到了java.util.function.BiFunction,所以我可以这样做: BiFunction<Integer, Integer, Integer> f = (x, y) -> { return 0; }; 如果那还不够好并且我需要TriFunction怎么办?它不存在! TriFunction<Integer, Integer, Integer, Integer> f = (x, y, z) -> { return 0; }; 我想我应该补充一点,我知道我可以定义自己的TriFunction,我只是想了解不将其包含在标准库中的原因。
113 java  lambda  java-8 


2
Comparator.reversed()不使用lambda进行编译
我有一个包含一些User对象的列表,我正在尝试对列表进行排序,但是只能使用方法引用来工作,对于lambda表达式,编译器会给出错误: List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.comparing(u -> u.getName())); // works userList.sort(Comparator.comparing(User::getName).reversed()); // works userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error 错误: com\java8\collectionapi\CollectionTest.java:35: error: cannot find symbol userList.sort(Comparator.comparing(u -> u.getName()).reversed()); ^ symbol: method getName() location: variable u of type Object 1 error

7
Java8 Lambdas与匿名类
自从Java8最近发布以来,它的全新lambda表达式看起来真的很酷,我想知道这是否意味着我们曾经习惯的Anonymous类的消亡。 我对此进行了一些研究,发现了一些很酷的示例,这些示例说明Lambda表达式将如何系统地替换这些类,例如Collection的sort方法,该方法用于获取Comparator的Anonymous实例来执行排序: Collections.sort(personList, new Comparator<Person>(){ public int compare(Person p1, Person p2){ return p1.firstName.compareTo(p2.firstName); } }); 现在可以使用Lambdas完成: Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName)); 而且看起来简明扼要。所以我的问题是,是否有任何理由继续在Java8中使用这些类而不是Lambda? 编辑 同样的问题,但方向相反,使用Lambdas代替Anonymous类有什么好处,因为Lambdas只能与单个方法接口一起使用,此新功能仅是仅在少数情况下使用的快捷方式,还是真的有用吗?


4
Lambda表达式和通用方法
假设我有一个通用接口: interface MyComparable<T extends Comparable<T>> { public int compare(T obj1, T obj2); } 和方法sort: public static <T extends Comparable<T>> void sort(List<T> list, MyComparable<T> comp) { // sort the list } 我可以调用此方法并将lambda表达式作为参数传递: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); 那会很好的。 但是现在,如果我将接口设为非泛型,并且将方法设为泛型: interface MyComparable { public <T extends …
111 java  generics  lambda  java-8 

2
是Linq还是Lambda?
我知道这是Linq: var _Results = from item in _List where item.Value == 1 select item; 我知道这是Lambda: var _Results = _List.Where(x => x.Value == 1); 编者注:以上不仅是Lambda,还在于使用“方法语法”的Linq,其谓词是Lambda。需要明确的是,以上两个示例都是Linq(我的原始帖子不正确,但是我留下了错误以说明提示问题的困惑)。 但是Linq是Lambda的子集还是什么? 为什么会有两个看似相同的技术? 是否有技术上的理由选择一个?
105 c#  linq  lambda 

4
C#将Lambda表达式作为方法参数传递
我有一个lambda表达式,希望能够传递和重用。这是代码: public List<IJob> getJobs(/* i want to pass the lambda expr in here */) { using (SqlConnection connection = new SqlConnection(getConnectionString())) { connection.Open(); return connection.Query<FullTimeJob, Student, FullTimeJob>(sql, (job, student) => { job.Student = student; job.StudentId = student.Id; return job; }, splitOn: "user_id", param: parameters).ToList<IJob>(); } 这里的关键是,我希望能够将在此使用的lambda表达式传递到调用此代码的方法中,以便我可以重用它。lambda表达式是我的.Query方法中的第二个参数。我假设我想使用Action或Func,但是我不太确定此语法是什么或它如何工作。有人可以给我一个例子吗?
105 c#  linq  lambda 

13
Python中Lambda表达式内的赋值
我有一个对象列表,我想使用filter和lambda表达式删除除一个以外的所有空对象。 例如,如果输入是: [Object(name=""), Object(name="fake_name"), Object(name="")] ...那么输出应为: [Object(name=""), Object(name="fake_name")] 有没有一种方法可以向lambda表达式添加赋值?例如: flag = True input = [Object(name=""), Object(name="fake_name"), Object(name="")] output = filter( (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]), input )

2
C ++ 0x Lambda按值捕获始终是const吗?
有什么方法可以按值捕获,并使捕获的值非常量?我有一个库函子,我想捕获并调用一个非const但应该是的方法。 以下代码不会编译,但通过使foo :: operator()const可以对其进行修复。 struct foo { bool operator () ( const bool & a ) { return a; } }; int _tmain(int argc, _TCHAR* argv[]) { foo afoo; auto bar = [=] () -> bool { afoo(true); }; return 0; }
102 c++  lambda  const  c++11 

5
匿名JavaScript函数f => f到底做什么?
我正在使用一个具有将函数作为参数的函数的第三方库。我正在做一些条件检查,以决定是否将特定功能添加为参数,在某些情况下,我不想提供功能。在这种情况下提供null会引发错误。 我发现此代码有效,但我不完全了解发生了什么。 compose(__DEV__ ? devTools() : f => f) 是f => f相当于() => {}一个空的匿名函数?

16
使用哪个更合适:lambda函数或嵌套函数('def')?
我主要使用lambda函数,但有时使用似乎提供相同行为的嵌套函数。 这是一些琐碎的示例,如果在另一个函数中找到它们,它们在功能上会做同样的事情: Lambda函数 >>> a = lambda x : 1 + x >>> a(5) 6 嵌套功能 >>> def b(x): return 1 + x >>> b(5) 6 使用一个相对于另一个有优势吗?(性能?可读性?局限性?一致性?等) 有关系吗 如果不这样做,那确实违反了Python原则: 应该有一种(最好只有一种)明显的方式来做到这一点。

6
如何将Django模型字段的默认值设置为函数调用/可调用(例如,相对于模型对象创建时间的日期)
编辑: 如何将Django字段的默认值设置为每次创建新模型对象时都会求值的函数? 我想执行以下操作,除了在此代码中,该代码被评估一次,并为每个创建的模型对象将默认值设置为相同的日期,而不是在每次创建模型对象时都对代码进行评估: from datetime import datetime, timedelta class MyModel(models.Model): # default to 1 day from now my_date = models.DateTimeField(default=datetime.now() + timedelta(days=1)) 原版的: 我想为函数参数创建一个默认值,以便它是动态的,并在每次调用函数时被调用和设置。我怎样才能做到这一点?例如, from datetime import datetime def mydate(date=datetime.now()): print date mydate() mydate() # prints the same thing as the previous call; but I want it to be a …

2
为什么我们需要纤维
对于纤维,我们有一个经典的例子:生成斐波那契数 fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end 为什么我们这里需要纤维?我可以使用相同的Proc重写它(实际上是关闭) def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end 所以 10.times { puts fib.resume } 和 prc = clsr 10.times …
100 ruby  lambda  closures  fibers  proc 

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.