Message: 2
Date: Fri, 31 Aug 2012 13:40:58 -0500
From: Tarl Neustaedter <tarl-b2@tarl.net>
To: The OpenBIOS Mailinglist <openbios@openbios.org>
Subject: Re: [OpenBIOS] Fwd: [PATCH] Adds local variable support to
OpenBIOS.
Message-ID: <5041053A.90303@tarl.net>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
On 2012-Aug-31 09:50 , Programmingkid wrote:
Are you saying my-variable is better than myVariable?
Yes.
I have changed all my code from camelCase to hyphens.
How do global variables get you in trouble in recursion? Do you have
an example?
Not off-hand, we learn to avoid doing that. To construct one - let's
take a method doing recursion properly, and break it:
\ Correct way, using stack manipulation
: fibonacci ( fib -- return ) recursive
dup 2 >= if ( fib )
dup 1- fibonnaci ( fib fib-1 )
swap 2 - fibonnaci ( fib-1 fib-2 )
+ ( fib )
then ( fib )
;
\ Incorrect way - using variable "fib", which will get overwritten
during recursion
0 value fib;
: fibonnaci ( fib -- return ) recursive
to fib \ to avoid stack manipulation
fib 2 < if
fib exit
then
fib 1- fibonnaci ( fib-1)
fib 2 - fibonnaci ( fib-1 fib-2 )
+ ( fib )
;
There is nothing to worry about. All the global variables in my code are only used at compile- time - not during runtime.