You can kind of recurse in Stata, as you can call a program from within itself. As you cannot actually define functions, this is not quite as straightforward (or useful?) as in R, but here is my attempt at a recursive factorial:
prog fct, rclass
args x
confirm number `x'
global ans `x'
_fct `x'
return scalar fct=$ans
end
prog _fct
args x
if `x'<=1 {
di as result $ans
}
else {
global ans=$ans*`--x'
_fct `x'
}
end
David
david@icnarc.org
-----Original Message-----
From: Tony YANG [mailto:zhaoyangsxz@gmail.com]
Sent: 31 January 2005 21:42
To: statalist@hsphsun2.harvard.edu
Subject: st: recursive concept
Dear Listers;
I am trying to do something by using the recursive concepts, and I am
not sure if there is some build-in command in Stata to realize it,
since in R, the build-in command Recall can work for it.
e.g.
fact<-function(x) {
if (x<=1) x else x*Recall(x-1)
}
fact(6)
Any suggestions would be greatly appreciated. Thanks in advance.
Best,
Tony
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/