从函数中检索变量

Retrieving variables from functions

由于函数内部的变量通常有一个局部范围(我假设),在任何函数式语言中,从函数中检索变量的最佳方法是什么,就像那样,在伪语言中

function test = (
firstVariable = calculateSomething()
secondVariable = calculateSomethingElse()
)

(
function finalCalculation = (
test() /*call the previously defined function*/
result = firstVariable+secondVariable /*how do I get those?*/
)

编辑:我不是笼统的。这个问题适用于所有函数式语言。问题本身在于从另一个函数中检索变量的概念,避免全局范围。无论如何,为了简单和示例的结构,我们假设 javascript。

在 javascript IIFEClosure 原则中

var f = (function() {
    var localFunc = function(){};
    var localVar1 = 3;
    var localVar2 = 4;

    // publish
    return {
         localFunc: localFunc,
         localVar: localVar1 
    }
})();

f.localFunc(); // ok
f.localVar2;   // nok

不知道我是否回答了问题

函数可以return一个结果:

result function test = (
    result.firstVariable = calculateSomething()
    result.secondVariable = calculateSomethingElse()
    return result
)

function finalCalculation = (
    result = test()
)

但是,这个问题听起来像是您实际上手头没有任何真正的问题,或者您的实际问题是其他问题,您把它变成了过于学术化的问题。标记为 java、javascript、C 和 C++ 的问题很少能得出合理的答案,因为这些语言在细节上差异太大。

看起来像是基础知识的泄漏。关键字是 global variablesreturn valuegetter/setter :您应该指定要使用的语言并提出一些具体问题。