Tag: lambda

为什么一个lambda具有1个字节的大小?

我正在使用C ++中的一些lambdas的内存,但是我对它们的大小感到有点困惑。 这是我的testing代码: #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 ouptut是: 17 0x7d90ba8f626f 1 这表明我的lambda的大小是1。 这怎么可能? lambda是不是应该至less指向它的实现?

什么是lambda语言?

我正在阅读“JavaScript:The Good Parts”,作者提到JavaScript是第一个要发布的lambda语言。 JavaScript的函数是带有(主要)词法作用域的第一类对象。 JavaScript是第一个成为主stream的lambda语言 。 在深层次上,JavaScript与Lisp和Scheme比Java更有共同之处。 C的衣服是Lisp。 这使JavaScript成为非常强大的语言。 我没有得到什么是lambda语言。 这种语言的属性是什么,它与Java,C,C ++和Php等语言有什么不同?

如何用Python中的lambda进行sorting

在Python中,我试图用lambda按datesorting。 我无法理解我的错误讯息。 消息是: <lambda>() takes exactly 1 argument (2 given) 我有的线是 a = sorted(a, lambda x: x.modified, reverse=True)

Java 8 lambdas,Function.identity()或t-> t

我有一个关于Function.identity()方法的用法的问题。 想象下面的代码: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // <- This, .map(str -> str) // <- is the same as this. .collect(Collectors.toMap( Function.identity(), // <– And this, str -> str)); // <– is the same as this. 是否有任何理由,你应该使用Function.identity()而不是str->str (反之亦然)。 我认为第二个选项更具可读性(当然是品味)。 但是,有什么“真正的”理由为什么应该被优先考虑呢?

编译C#Lambdaexpression式的性能

考虑以下对集合的简单操作: 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); 现在让我们使用expression式。 以下代码大致相同: static void UsingLambda() { Func<IEnumerable<int>, IEnumerable<int>> lambda = l => l.Where(i => i % 2 == 0).Where(i => i > […]

如果为空查询,则返回最大值

我有这个查询: int maxShoeSize=Workers.Where(x=>x.CompanyId==8).Max(x=>x.ShoeSize); 如果公司8根本没有工人,那么maxShoeSize会是什么? 更新: 如何更改查询以获得0而不是exception?

性能的foreach,array_map与lambda和array_map与静态函数

这三种方法之间的性能差异是什么(如果有的话),都用于将数组转换为另一个数组? 使用foreach 使用array_map和lambda / closure函数 使用array_map与“静态”函数/方法 还有其他的方法吗? 为了使自己清楚,让我们看看这些例子,都做了相同的事情 – 乘以10的数组: $numbers = range(0, 1000); 的foreach $result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result; 与lambda映射 return array_map(function($number) { return $number * 10; }, $numbers); 映射“静态”函数,作为string引用传递 function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers); 还有其他的方法吗? 我会很高兴地听到上述情况之间的所有差异,以及为什么应该用其他方式来替代别人。

C#lambdaexpression式可以有多个语句吗?

一个C#lambdaexpression式可以包含多个语句吗? (编辑:如下面几个答案中所引用的,这个问题最初是关于“行”而不是“语句”的问题。)

Java 8可选的orElse可选

我一直在使用Java 8中的新的可选types ,并且遇到了一个看起来像一个常见的操作,但是在function上不受支持:“orElseOptional” 考虑以下模式: Optional<Result> resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result; else { Optional<Result> resultFromServiceB = serviceB(args); if (resultFromServiceB.isPresent) return resultFromServiceB; else return serviceC(args); } 这种模式有很多种forms,但是它归结为想要一个可选的“orElse”,它带有一个产生一个新的可选的函数,只有当前函数不存在时才被调用。 它的实现看起来像这样: public Optional<T> orElse(Supplier<Optional<? extends T>> otherSupplier) { return value != null ? this : other.get(); } 我很好奇,如果有这样的一个方法不存在的原因,如果我只是用一个意想不到的方式使用可选,以及人们提出了什么其他方式来处理这种情况。 我应该说,我认为涉及自定义实用程序类/方法的解决scheme并不优雅,因为使用我的代码的人不一定知道它们存在。 另外,如果有人知道,这个方法是否会包含在JDK 9中,我可以在哪里提出这样一个方法? 这似乎是API的一个非常明显的遗漏给我。

Java“在此语言级别不支持的lambdaexpression式”

我正在testingJava 8的一些新特性,并将这个示例复制到我的IDE中(原来是Eclipse,然后是IntelliJ),如下所示: http : //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest。 java的 Eclipse不提供任何lambdaexpression式的支持,IntelliJ不断报告“在这个语言级别不支持Lambdaexpression式”的错误。 我想知道这是否是我的安装,代码或支持的问题。