Functional programming 什么';“s”与“s”相反;“关闭”吗;?

Functional programming 什么';“s”与“s”相反;“关闭”吗;?,functional-programming,closures,terminology,Functional Programming,Closures,Terminology,考虑以下(C#)代码。传递给ConcurvedRand()的lambda被称为在名为format的变量上“关闭”。您会用什么术语来描述变量random在MyMethod()中的用法 void方法 { int随机; string format=“lambda范围内的数字{0}”; 卷积带(x=> { Console.WriteLine(格式,x); 随机=x; }); WriteLine(“该数字在lambda范围外{0}”,随机); } 无效卷积带(动作) { int random=新的rand

考虑以下(C#)代码。传递给ConcurvedRand()的lambda被称为在名为format的变量上“关闭”。您会用什么术语来描述变量random在MyMethod()中的用法

void方法
{
int随机;
string format=“lambda范围内的数字{0}”;
卷积带(x=>
{
Console.WriteLine(格式,x);
随机=x;
});
WriteLine(“该数字在lambda范围外{0}”,随机);
}
无效卷积带(动作)
{
int random=新的random.Next();
动作(随机);
}

这将是一个局部变量(也许有一个更科学的名称,
不自由
可能?

这将是一个局部变量(也许有一个更科学的名称,
不自由
可能?)

我通常在特定表达式或词汇范围的上下文中听到“绑定”与“自由”。lambda同时关闭
格式
随机
(它们在lambda中是“免费”的,这就是它关闭它们的原因)。在MyMethod中,两个变量都只是局部绑定的变量。

在特定表达式或词法范围的上下文中,我通常会听到“绑定”与“自由”的区别。lambda同时关闭
格式
随机
(它们在lambda中是“免费”的,这就是它关闭它们的原因)。在MyMethod中,这两个变量都是局部绑定变量。

我可以根据用户图标判断您有资格回答此问题。我可以根据用户图标判断您有资格回答此问题。
void MyMethod
{
    int random;
    string format = "The number {0} inside the lambda scope";

    ConvolutedRand(x =>
    {
        Console.WriteLine(format, x);
        random = x;
    });

    Console.WriteLine("The number is {0} outside the lambda scope", random);
}

void ConvolutedRand(Action<int> action)
{
    int random = new Random.Next();
    action(random);
}