Stata Turing-Complete吗?
-
10-10-2019 - |
题
我最近一直在与Stata合作进行一些统计数据,但并不喜欢它。
在我看来,这是一种“适当”的编程语言:尤其是我没有 思考 有一种循环的方法,直到满足条件。
我的感觉是对的,还是Stata真的很完整?
其他提示
您可以使用它构建网页或GUI的“正确”编程语言?当然不是。但这有点极端。您当然可以使用.ado和.do文件编写循环;我想说的是图灵完成。
@eric.a.booth:我认为您的榜样很奇怪。我不确定我曾经见过 while { ... } else {...}
另外,请注意,在运行该循环之前,Stata不会测试循环,并且会允许自己陷入无限循环中。
local x = 0
while `x'<5 {
display `x' / 2
local ++x
}
虽然您可以使用-while-,-if,-else-命令执行循环直至满足条件,但在Stata中,使用-foreach-或-forvalues-循环通常是一个更好的主意。
因此,而不是说:
while "`1'" != "" {
<do something>
}
或者
if "`a'" == "" {
<do something>
}
else {
<do something else>
}
通常要做的更好(更直观):
forvalues x = 1/100 {
<do something>
}
- 无-if-,-else-或-break-条件。有关详细信息,请参见-shelp forvalues-或-shelp foreach-- help foreach-。
^注意:我的原始帖子中的while-else循环被删除了 - 谢谢,基思(Keith)。 -else -part仅针对if {] else {}循环示例。无论如何,我的帖子的重点不是建议使用一段时间/否则,或者/否则循环,这是 - foreach - / - forvalues-通常是首选方法。
不隶属于 StackOverflow