Tag: lambda

与LINQ的多个订单

我从一个基本的类开始,我想在使用LINQ的列表中进行操作,如下所示: public class FooBar { public virtual int Id { get; set; } public virtual string Foo{ get; set; } public virtual string Bar{ get; set; } } 这是我最终发现解决我的问题使用非lambda LINQ的东西。 // code somewhere else that works and gets the desired results var foobarList = GetFooBarList(); // Abstracted out – returns List<Foobar> // Interesting piece of […]

一个lambda函数可以在Python中recursion调用吗?

一个普通的函数可以在其定义中包含对自身的调用,没有问题。 我不知道如何使用lambda函数来做到这一点,虽然简单的理由是,lambda函数没有名称可以返回。 有没有办法做到这一点? 怎么样?

Lambdaexpression式和通用方法

假设我有一个通用的接口: 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 } 我可以调用这个方法,并传递一个lambdaexpression式作为参数: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); 这将工作正常。 但是现在如果我使接口非generics,并且generics的方法: interface MyComparable { public <T extends Comparable<T>> int compare(T obj1, […]

我想了解@ Html.DisplayFor(modelItem => item.FirstName)中的lambdaexpression式

我是相当新的C#和MVC,并已在某些场合使用lambdas,如匿名方法和LINQ。 通常我会看到类似这样的lambdaexpression式: (x => x.Name), (x => { Console.WriteLine(x)) 我明白,lambda =“去”。 我从来没有见过一个lambdaexpression式的左侧参数不使用。 我不知道如何翻译这个lambdaexpression式 @Html.DisplayFor(modelItem => item.FirstName) 任何人都可以为我介绍一下这一点吗? 不应该这样 (modelItem => modelItem.FirstName)? 我从微软的ASP.NET MVC入门教程中得到了这个。

如何将Django模型字段的默认值设置为函数调用/可调用(例如,相对于创build模型对象的date)

编辑: 我怎样才能设置一个Django字段的默认值,每次创build一个新的模型对象时得到评估的函数? 我想要做类似于下面的事情,除了在这段代码中,代码被计算一次,并将每个模型对象的默认值设置为相同的date,而不是在每次创build模型对象时评估代码。 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)) 原版的: 我想创build一个函数参数的默认值,以便它是dynamic的,每次调用函数时都会被调用和设置。 我怎样才能做到这一点? 例如, 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 newer value 具体来说,我想在Django中做到这一点,例如, […]

哪个更适合在Python中使用:lambda函数或嵌套函数('def')?

我主要使用lambda函数,但有时使用似乎提供相同行为的嵌套函数。 这里有一些微不足道的例子,他们在function上做同样的事情,如果在另一个函数中发现: Lambda函数 >>> a = lambda x : 1 + x >>> a(5) 6 嵌套function >>> def b(x): return 1 + x >>> b(5) 6 使用其中一个有好处吗? (性能?可读性?限制?一致性?等)它甚至重要吗? 如果这样做没有违反Pythonic原则: “应该有一个,最好只有一个 – 明显的方式来做到这一点” 。

Lambdaexpression式将数组/string列表转换为数组/列表整数

由于Java 8带有强大的lambdaexpression式, 我想写一个函数来转换一个列表/数组的string数组/列表整数,浮动,双打等。 在普通的Java中,它将如此简单 for(String str : strList){ intList.add(Integer.valueOf(str)); } 但是,如何给lambda赋予一个string数组,将其转换为一个整数数组,如何实现同样的效果。

std :: function是如何实现的?

根据我发现的来源, lambdaexpression式本质上是由编译器创build一个重载的函数调用操作符和引用的variables作为成员的类来实现的。 这表明lambdaexpression式的大小是变化的,并给出足够大的引用variables,这个variables的大小可以是任意大的 。 一个std::function应该有一个固定的大小 ,但它必须能够包装任何种类的可调用,包括任何types的lambda。 它是如何实现的? 如果std::function内部使用一个指向它的目标的指针,那么当std::function实例被复制或移动时会发生什么? 有涉及堆分配吗?

在Java中从java.util.stream.Stream中检索列表

我正在玩Java 8 lambda来轻松过滤集合。 但是,我没有find一个简洁的方法来检索结果作为一个新的列表在同一语句。 这是我迄今为止最简洁的方法: List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List<Long> targetLongList = new ArrayList<>(); sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add); 网上的例子没有回答我的问题,因为他们停止,而不会产生一个新的结果列表。 必须有一个更简洁的方法。 我会期望, Stream类的方法有toList() , toSet() ,… 有没有一种方法,variablestargetLongList可以直接由第三行分配?

匿名recursionPHP函数

是否有可能是recursion和匿名的PHP函数? 这是我试图让它工作,但它不通过函数名称。 $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n – 1 ) * $n; }; print $factorial( 5 ); 我也意识到这是一个不好的方法来实现阶乘,这只是一个例子。