为什么 dolphindb 脚本中的函数无法访问外部作用域中的变量
Why functions in dolphindb script can't access variables in outer scope
在我使用过的大多数编程语言中,例如 C/C++、python,函数可以访问外部作用域中的变量,但是正如我在 DolphinDB 脚本中尝试的那样,它是不一样的情况。
以下代码不起作用并报告错误消息:Variable 'foo' isn't initialized yet.
foo = 1
def func() {
foo = foo + 1
}
func()
我想知道为什么要这样设计
DolphinDB支持函数式编程,包括纯函数的特性。纯函数没有副作用,即只有函数的输入参数可以影响函数的输出。
纯函数清晰input/output从而提高了软件质量。纯函数使代码可读。给定输入参数,纯函数有稳定的输出,这使得测试更容易。 DolphinDB 是一个建立在 RPC 之上的分布式系统。如果一个函数依赖外部作用域中的变量,则它不能在远程节点中执行。
在我使用过的大多数编程语言中,例如 C/C++、python,函数可以访问外部作用域中的变量,但是正如我在 DolphinDB 脚本中尝试的那样,它是不一样的情况。
以下代码不起作用并报告错误消息:Variable 'foo' isn't initialized yet.
foo = 1
def func() {
foo = foo + 1
}
func()
我想知道为什么要这样设计
DolphinDB支持函数式编程,包括纯函数的特性。纯函数没有副作用,即只有函数的输入参数可以影响函数的输出。
纯函数清晰input/output从而提高了软件质量。纯函数使代码可读。给定输入参数,纯函数有稳定的输出,这使得测试更容易。 DolphinDB 是一个建立在 RPC 之上的分布式系统。如果一个函数依赖外部作用域中的变量,则它不能在远程节点中执行。