标签: lambda

为什么Linq lambdas不需要'return`声明,但我的呢?

我在图书馆里使用lambdas很多.真让我烦恼的一件事是我似乎无法摆脱返回声明,而且我周围有相当多的样板代码.

到目前为止它是如何工作的:

public delegate IBarelyView HandlerInvoker(IDictionary<string, string> route, IDictionary<string, string> form);
public void MyFunc(string foo, HandlerInvoker invoker) { }
Run Code Online (Sandbox Code Playgroud)

这是我有工作人员使用MyFunc的代码:

MyFunc("foobar", (x, y) => { return new Xyz();});
Run Code Online (Sandbox Code Playgroud)

现在我知道这不是太糟糕了.但是,我真的希望能够使用Linq类型语法.例如,它很容易做到

ObjectList.Where(x=>x.Foo=="bar");
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,Linq语法的正面没有return声明,没有括号围绕"参数",也没有花括号.

为什么我的lambdas中不能有这种语法?如果我删除return语句,我得到一个错误,不是所有代码路径都返回一个值.

.net c# linq lambda delegates

0
推荐指数
1
解决办法
228
查看次数

PHP Lambda函数

嘿家伙我搞砸了我的Lambda,似乎我的匿名函数没有得到上面的变量,

进入的一些变革是

print_r($cacheTypes); 
print_r($servers); 

Array
(
    [concreter] => on
    [config] => on
)
Array
(
    [0] => dev-www.domain.com
)
Run Code Online (Sandbox Code Playgroud)

功能是

$urls = array_walk($servers, 
    create_function('&$n', 
        '$n = "http://{$server}/".($vcpParam 
            ? "flush-file-cache" 
            : "flushFileCache.php"
        )."?tags=".implode("-", array_keys($cacheTypes));'
    )
);
Run Code Online (Sandbox Code Playgroud)

错误是

Warning: array_keys() expects parameter 1 to be array, null given
Warning: implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed
Run Code Online (Sandbox Code Playgroud)

非常感谢.我很肯定它没有认识到我正在输入的变量,但我不确定为什么

php lambda anonymous-function

0
推荐指数
1
解决办法
1001
查看次数

没有实例(Show([(String,Int)] - > Int))

如果我正在使用lambda表达式,那么在生产规则中快速计算表达式的值是不行的.

例如这段代码

Exp   : let var '=' Exp in Exp  { \p -> $6 (($2,$4 p):p) }
      | Exp1                    { $1 }

Exp1  : Exp1 '+' Term           { \p -> $1 p + $3 p }
      | Exp1 '-' Term           { \p -> $1 p - $3 p }
      | Term                    { $1 }

Term  : Term '*' Factor         { \p -> $1 p * $3 p }
      | Term '/' Factor         { \p -> $1 p `div` $3 p …
Run Code Online (Sandbox Code Playgroud)

lambda parsing haskell happy

0
推荐指数
1
解决办法
1307
查看次数

用于事件和绑定异常的一次性lambda

我试图取消订阅本身的lambda.我使用MethodInfo类获取有关lambda的信息,使用Delegate.CreateDelegate方法创建与lambda相同的方法.因此,如果在包含我使用的事件但在另一个类方法(绑定异常)中不起作用的类方法之一中创建的lambda,它可以正常工作.

这是代码:

public class TestClass
{
    public event Action SomeEvent;
    public void OnSomeEvent()
    {
        if (SomeEvent != null)
        {
            SomeEvent();
        }
    }
    public TestClass()
    {
        //IT WORKS FINE!!!
        //SomeEvent += () =>
        //{
        //    Console.WriteLine("OneShotLambda");
        //    MethodInfo methodInfo = MethodInfo.GetCurrentMethod() as MethodInfo;
        //    Action action = (Action)Delegate.CreateDelegate(typeof(Action), this, methodInfo);
        //    SomeEvent -= action;
        //};
    }
}

class Program
{
    static void Main(string[] args)
    {
        TestClass t = new TestClass();
        t.SomeEvent += () =>
            {
                Console.WriteLine("OneShotLambda");
                MethodInfo methodInfo = MethodInfo.GetCurrentMethod() as …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection events lambda

0
推荐指数
1
解决办法
444
查看次数

阵列上Lambda表达式的模糊评估

lambda如果x等于零,我想使用a 将x加1.我尝试了以下表达式:

t = map(lambda x: x+1 if x==0 else x, numpy.array())
t = map(lambda x: x==0 and x+1 or x, numpy.array())
t = numpy.apply_along_axis(lambda x: x+1 if x==0 else x, 0, numpy.array())
Run Code Online (Sandbox Code Playgroud)

每个表达式都返回以下错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud)

我的理解map(),并numpy.apply_along_axis()是,它会采取一些功能,并将其应用到数组的每个值.从错误看来,lambda似乎被评估为x=array,而不是数组中的某些值.我究竟做错了什么?

我知道我可以编写一个函数来完成这个,但我想更熟悉python的函数编程方面.

python lambda numpy

0
推荐指数
1
解决办法
971
查看次数

达到特定财务价值时,在列表中查找项目

我有一份销售清单.

我还有一个财务里程碑的小数列表,例如100美元,250美元,500美元等.

我试图找到产品达到这些里程碑的时间点.我在下面尝试做的是将已经检索到的productSales列表放入我可以使用的结构中(实际查询执行货币转换等等.我只是想让这个问题变得简单),所以对于每个里程碑,我将它转换为此BusinessPlanningElement列表并按DateSold分组.

然后我按DateSold对它进行排序,我的想法是检索第一个等于或大于十进制里程碑变量的元素.然后我继续获取日期,并找到DateSold与产品提交给系统的日期之间的差异.

foreach (decimal milestone in milestones)
{
    List<BusinessPlanningElement> MileStoneSales = (from sale in productSales
                      group sale by sale.DateSold into ds
                      select new BusinessPlanningElements
                      {
                          DateSold = ds.Key,
                          TotalSales = ds.Sum(it => it.TotalProductCut.HasValue ? it.TotalProductCut.Value : 0),
                      }).OrderBy(s => s.DateSold).ToList();


    BusinessPlanningElement bpe = MileStoneSales.Where(mss => mss.TotalSales >= milestone)
                                                .FirstOrDefault();

    if (bpe != null)
    {
        DateTime DateReached = bpe.DateSold;
        TimeSpan ts = DateReached - product.DateTimeSubmitted.Value;
        int NumberOfDays = ts.Days;

        //Output NumberOfDays
    }
    else
    {
        //Do Something Else
    }

} …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda list

0
推荐指数
1
解决办法
149
查看次数

C#Order List基于嵌套列表值与lambda表达式的平均值

我想知道是否可以使用lambda表达式根据嵌套项目列表的平均值来排序项目列表.

在项目方面,我有一个产品列表,每个产品都可以有很多评论.我想根据每个产品的评论列表的平均评分来订购产品列表.

我有这个:

products = category.Products.OrderBy(i => i.Reviews.Average(x => x.Rating));
Run Code Online (Sandbox Code Playgroud)

这种构建没有问题,但是当我运行它时,它会返回一个错误

序列不包含任何元素

是否可以使用lambda表达式执行此操作?

c# lambda

0
推荐指数
1
解决办法
1008
查看次数

c ++ 11 lambda表达式

今天我在c ++ 11上做了一些追赶(因为我们还没有继续前进).像很多人所说的那样切换的原因之一似乎是lambda表达式.我仍然不确定他们如何提供新的东西.

例如使用c ++ 11:

#include <iostream>

int main()
{
    auto func = [] () { std::cout << "Hello world" << std::endl; };

    func();
}
Run Code Online (Sandbox Code Playgroud)

似乎非常相似:

#include <iostream>

#define FUNC( )\
        do { std::cout << "Hello world" << std::endl; } while(0)


int main()
{
    FUNC();
}
Run Code Online (Sandbox Code Playgroud)

lambda表达式为我提供了什么,我目前还不能做到?

c++ lambda c++11

0
推荐指数
1
解决办法
868
查看次数

Lambda复合加入

我正在尝试加入一个查询的结果来过滤第二个查询的结果.

第一次查询

// get the compound centre number and languageId key
var centreKeys = unitOfWork.CentreTranslationRepository.GetAll()
    .Where(w => w.Language.cuture == searchCulture || w.language_id == 1)
    .GroupBy(g => g.Centre.number)
    .Select(s =>
        new
        {
            CentreNumber = s.Key,
            LanguageId = s.Max(g => g.language_id)
        });
Run Code Online (Sandbox Code Playgroud)

这将返回以下形式的结果:

{ CentreNumber = 1589, LanguageId = 27 }

{ CentreNumber = 261, LanguageId = 1 }  

{ CentreNumber = 1257, LanguageId = 1 }

{ CentreNumber = 925, LanguageId = 1 }  
Run Code Online (Sandbox Code Playgroud)

等等

第二个查询

// join onto the translated …
Run Code Online (Sandbox Code Playgroud)

c# lambda join

0
推荐指数
1
解决办法
2624
查看次数

使用lambda表达式从一个列表中的一个列表中获取值

我是lambda表达的新手,所以我试着解决一个问题.但我不能.所以有人可以建议解决这个问题.

我有一个班级客户.在里面我创建了另外3个类并为3个类创建了可观察的集合.我为这个客户创建了一个可观察的集合

ObservableCollection<Customer> customer2;

   public class Customer
    {
        public string CusName { get; set; }
        public int CusAge { get; set; }
        public ObservableCollection<Bankdetails> bankdetails;
        public ObservableCollection<order> orderlist;
        public ObservableCollection<orderdetails> orderdetailslist;

        public class Bankdetails
        {
            public string Bankaccno { get; set; }
            public string bankname { get; set; }
            public int bankid { get; set; }
        }

        public class order
        {
            public string ordername { get; set; }
            public string orderid { get; set; }

        }

        public class orderdetails
        { …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

0
推荐指数
1
解决办法
3547
查看次数

标签 统计

lambda ×10

c# ×6

linq ×3

.net ×2

anonymous-function ×1

c++ ×1

c++11 ×1

delegates ×1

events ×1

happy ×1

haskell ×1

join ×1

list ×1

numpy ×1

parsing ×1

php ×1

python ×1

reflection ×1