LocalSolver快速入门指南(连载二十五) ---- Lambda表达式

LocalSolver的Lambda expressions(拉姆达表达式)

LocalSolver 提供了将 n 元运算符(如 sum、min、max 等)应用于一系列动态大小的可能性。例如,它允许定义一个总和,其项数将取决于其他表达式。在这样的表达式中,迭代项作为 lambda 函数引入。一个典型的用法是定义集合项的总和:

 

// x是一个列表变量或集合变量
total <- sum(x, i => quantity[i]);

在上面的例子中, sum 有两个操作数:

  • 第一个操作数是集合。
  • 第二个操作数是一个 lambda 表达式,它定义了应用于范围内每个元素的 lambda 函数。
除了列表和集合之外,还可以使用由其端点定义的整数范围。例如,如果 x 是一个列表,则上述构造等效于:
total <- sum(0..count(x)-1, i => quantity[x[i]]);
 
我们将描述范围(range)的属性以及如何引入 lambda 函数。然后我们将详细说明哪些运算符可以从这个特性中受益,包括数组运算符的特殊情况。

 

我们示例导览的几个示例说明了此功能(包括经典的 CVRP问题)。下一章节(范围:RANGES)

更多问题请致电无锡迅合信息科技有限公司LOCAL SOLVER国内独家代理商数学建模工程师。

 

猜你喜欢

转载自blog.csdn.net/qq_31243247/article/details/118069907