首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stata Turing-complete吗?

Stata Turing-complete吗?
EN

Stack Overflow用户
提问于 2010-12-09 14:50:08
回答 4查看 1.7K关注 0票数 5

我最近一直在用Stata做一些统计工作,但并不是很喜欢。

在我看来,它不像是一种“合适的”编程语言:尤其是,我不认为有一种方法可以在满足某个条件之前进行循环。

我的感觉是对的吗,或者Stata是真正的图灵完整吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-09 15:00:25

我以前从来没有听说过Stata,但网页上吹嘘说它有"if, while“和"looping and branching”。

维基图书有this example

代码语言:javascript
复制
local k = 1
file open myfile using toto.txt, read text
file read myfile line
while r(eof) == 0 {
    local k = `k' + 1
    di "`k' `line'"
    file read myfile line
    }
file close myfile

我不知道“适当的”编程语言是什么意思,但乍一看,它绝对是图灵完备的。

票数 3
EN

Stack Overflow用户

发布于 2010-12-11 14:43:43

一种“适当的”编程语言,你可以用它来构建网页或GUI?当然不是。但这有点极端。你当然可以用.ado和.do文件编写循环;我想说它是图灵完成的。

票数 1
EN

Stack Overflow用户

发布于 2010-12-16 13:04:02

虽然您可以使用- While -、-if、-else-命令来执行循环,直到满足某个条件,但在Stata中使用-foreach- or -forvalues循环来代替它们通常是一个更好的想法。

所以,与其说:

代码语言:javascript
复制
while "`1'" != "" {
<do something>
} 

代码语言:javascript
复制
if "`a'" == "" {
<do something>
}
else {
<do something else>
}

通常更好(也更直观)的做法是:

代码语言:javascript
复制
forvalues x = 1/100 {
<do something>
}

--不需要if-、-else-或-break条件。有关详细信息,请参阅-help for forvalues或-help foreach- in Stata。

^注意:我最初的帖子中的while-else循环被删除了--谢谢你的提醒,Keith。else- part仅用于if{] else{}循环示例。无论如何,我这篇文章的重点并不是建议使用while/else或if/else循环,而是-foreach-/-forvalues-通常是首选方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4395627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档