Questions tagged «lambda»

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


7
迭代Java 8中的枚举
是否可以Enumeration使用Lambda表达式进行迭代?以下代码段的Lambda表示形式是什么: Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); while (nets.hasMoreElements()) { NetworkInterface networkInterface = nets.nextElement(); } 我没有在其中找到任何信息流。

2
如何使用Java 8 Lambda从流中获取一系列项目?
在上一个问题中[如何在Java 8中动态进行过滤?] Stuart Marks给出了一个很好的答案,并提供了一些有用的实用程序来处理从流中选择topN和topPercent。 我将从他的原始答案中将它们包括在这里: @FunctionalInterface public interface Criterion { Stream<Widget> apply(Stream<Widget> s); } Criterion topN(Comparator<Widget> cmp, long n) { return stream -> stream.sorted(cmp).limit(n); } Criterion topPercent(Comparator<Widget> cmp, double pct) { return stream -> { List<Widget> temp = stream.sorted(cmp).collect(toList()); return temp.stream() .limit((long)(temp.size() * pct)); }; } 我的问题是: [1]如何从具有一定数量的商品的流中获取3到7的热门商品,因此,如果流中有A1,A2 .... A10的商品,则调用 …
73 java  filter  lambda  java-8 


5
Java 8 Collectors.toMap SortedMap
我正在使用Java 8 lambda,并且想要使用Collectors toMap返回一个SortedMap。我能想到的最好的Collectors toMap方法是使用一个虚拟对象mergeFunction并mapSupplier等于来调用以下方法TreeMap::new。 public static <T, K, U, M extends Map<K, U>> Collector<T, ?, M> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier) { BiConsumer<M, T> accumulator = (map, element) -> map.merge(keyMapper.apply(element), valueMapper.apply(element), mergeFunction); return new CollectorImpl<>(mapSupplier, accumulator, …

4
将Func委托与Async方法一起使用
我正在尝试将Func与异步方法一起使用。我得到一个错误。 无法将异步lambda表达式转换为委托类型'Func<HttpResponseMesage>'。异步lambda表达式可能返回void,Task或Task<T>(都不能转换为)'Func<HttpResponseMesage>'。 以下是我的代码: public async Task<HttpResponseMessage> CallAsyncMethod() { Console.WriteLine("Calling Youtube"); HttpClient client = new HttpClient(); var response = await client.GetAsync("https://www.youtube.com/watch?v=_OBlgSz8sSM"); Console.WriteLine("Got Response from youtube"); return response; } static void Main(string[] args) { Program p = new Program(); Task<HttpResponseMessage> myTask = p.CallAsyncMethod(); Func<HttpResponseMessage> myFun =async () => await myTask; Console.ReadLine(); }


8
Java 8:lambda表达式中的强制检查异常处理。为什么是强制性的而不是可选性的?
我正在使用Java 8的新lambda功能,发现Java 8提供的实践确实很有用。但是,我想知道是否有一种很好的方法来解决以下情况。假设您有一个对象池包装器,需要某种工厂来填充对象池,例如(使用java.lang.functions.Factory): public class JdbcConnectionPool extends ObjectPool<Connection> { public ConnectionPool(int maxConnections, String url) { super(new Factory<Connection>() { @Override public Connection make() { try { return DriverManager.getConnection(url); } catch ( SQLException ex ) { throw new RuntimeException(ex); } } }, maxConnections); } } 将功能接口转换为lambda表达式后,上面的代码变为: public class JdbcConnectionPool extends ObjectPool<Connection> { …

9
访问成员表达式的值
如果我有产品。 var p = new Product { Price = 30 }; 我有以下linq查询。 var q = repo.Products().Where(x=>x.Price == p.Price).ToList() 在一个IQueryable提供程序中,我得到了一个包含常量表达式的p.Price的MemberExpression,但是似乎无法从中获得值“ 30”。 更新 我已经尝试过了,但是似乎没有用。 var memberExpression = (MemberExpression)GetRootConstantExpression(m); var fi = (PropertyInfo)memberExpression.Member; var val = fi.GetValue(((ConstantExpression)memberExpression.Expression).Value, null); 干杯。

4
C ++ lambda表达式的生命周期是多少?
(我已经阅读了lambda派生的隐式函子在C ++中的寿命是什么?并且它不能回答这个问题。) 我知道C ++ lambda语法只是使用调用运算符和某些状态创建匿名类的实例的糖,并且我了解该状态的生存期要求(由您是否通过按引用的值捕获来确定。) Lambda对象本身的生命周期?在以下示例中,std::function返回的实例是否有用? std::function<int(int)> meta_add(int x) { auto add = [x](int y) { return x + y; }; return add; } 如果是,它将如何工作?对我来说,这似乎太神奇了-我只能通过std::function复制整个实例来想象它能工作,这取决于我捕获的内容,可能非常繁琐-过去我std::function主要使用裸函数指针,而复制这些实例是快。鉴于std::function类型的擦除,这似乎也有问题。
70 c++  lambda  c++11 

3
Collectors.toList()返回哪种List <E>?
我正在阅读Lambda状态:图书馆版,但对以下陈述感到惊讶: 在Streams部分下,有以下内容: List&lt;Shape&gt; blue = shapes.stream() .filter(s -&gt; s.getColor() == BLUE) .collect(Collectors.toList()); 该文件没有说明shapes实际的内容,我也不知道它是否重要。 让我感到困惑的是:List此代码块返回什么样的具体代码? 它将变量分配给List&lt;Shape&gt;,这是完全可以的。 stream()也不filter()决定要使用哪种列表。 Collectors.toList()均未指定的具体类型List。 那么,这里使用的是什么具体类型(子类)List?有保证吗?

6
C ++ 14中的Lambda-Over-Lambda
接下来的递归lambda调用如何结束/终止? #include &lt;cstdio&gt; auto terminal = [](auto term) // &lt;---------+ { // | return [=] (auto func) // | ??? { // | return terminal(func(term)); // &gt;---------+ }; }; auto main() -&gt; int { auto hello =[](auto s){ fprintf(s,"Hello\n"); return s; }; auto world =[](auto s){ fprintf(s,"World\n"); return s; }; …
69 c++  lambda  c++14 

2
Java 8 pass方法作为参数
当前正在学习Java 8 lambda表达式和方法参考。 我想将不带参数且没有返回值的方法作为参数传递给另一个方法。这就是我的做法: public void one() { System.out.println("one()"); } public void pass() { run(this::one); } public void run(final Function function) { function.call(); } @FunctionalInterface interface Function { void call(); } 我知道有一组预定义功能接口的java.util.function,如Function&lt;T,R&gt;,但我没有找到一个不带任何参数,而不是产生结果。

2
可以在头文件中使用lambda违反ODR吗?
可以将以下内容写在头文件中: inline void f () { std::function&lt;void ()&gt; func = [] {}; } 要么 class C { std::function&lt;void ()&gt; func = [] {}; C () {} }; 我猜在每个源文件中,lambda的类型可能不同,因此std::function(target_type的结果中包含的类型会有所不同)。 尽管看起来像是一种常见模式并且是合理的做法,但这是否违反了ODR(一个定义规则)?第二个样本是否每次都违反ODR?或者仅在头文件中至少有一个构造函数时才违反?

2
Lambda作为基类
在Lambdas上玩耍时,我发现了一个有趣的行为,但我并没有完全理解。 假设我有一个struct Overload从2个模板参数派生的,并且有一个using F1::operator();子句。 现在,如果我派生自两个函子,则只能访问F1的operator()(正如我期望的那样) 如果我从两个Lambda函数派生,则不再适用:我也可以从F2访问operator()。 #include &lt;iostream&gt; // I compiled with g++ (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) // // g++ -Wall -std=c++11 -g main.cc // g++ -Wall -std=c++11 -DFUNCTOR -g main.cc // // or clang clang version 3.3 (tags/RELEASE_33/rc2) // // clang++ -Wall -std=c++11 -g main.cc // clang++ …
69 c++  c++11  lambda 

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.