簡単にするために、Smallbasic にはグローバル変数しかありません。ローカルまたはパラメーターはありません。
これにより、教育や学習が簡単になりますが、再帰関数などのいくつかの問題も複雑になります。smallbasic で単純な再帰関数を作成するのに苦労し、手動スタックを使用する必要がありました。これは機能しますが、より複雑になり、シンプルさという最初の主な目標と矛盾します!
これは階乗を書く方法です:
n = 5
ind = 1
fact()
TextWindow.WriteLine("fact(5)=" + f)
Sub fact
If n = 1 Then
f = 1
Else
ind = ind+1
keepn[ind] = n
n = n-1
fact()
f = f * keepn[ind]
ind = ind-1
EndIf
EndSub
注:今書いたばかりで、エラーがある可能性があります。
写真をご覧ください。私は手動でスタックを作成し、それを使用してローカル変数をシミュレートし、再帰に使用しています。
この再帰関数を作成する簡単な方法はありますか?