为什么Dolphindb脚本中的函数无法访问外部作用域中的变量

时间:2019-06-23 14:28:47

标签: database dolphindb

在我使用的大多数编程语言中,例如C / C ++,python,函数可以访问外部作用域中的变量,但是正如我在DolphinDB脚本中尝试过的那样,情况并不相同。

以下代码不起作用,并报告错误消息:Variable 'foo' isn't initialized yet.

foo = 1
def func() {
    foo = foo + 1
}
func()

我想知道为什么要这样设计。

1 个答案:

答案 0 :(得分:0)

DolphinDB支持包括纯函数功能在内的函数式编程。纯函数没有副作用,即仅函数的输入参数可以影响函数的输出。

纯功能具有清晰的输入/输出,从而提高了软件质量。纯函数使代码可读。给定输入参数,纯函数具有稳定的输出,这使测试更加容易。 DolphinDB是基于RPC构建的分布式系统。如果某个函数依赖于外部作用域中的变量,则不能在远程节点上执行。