Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Bug in 'use? Re:(3)

From: lmecir:geocities at: 26-Jul-2000 18:43

The following has been written:
> > Hi Ladislav, 15-Jul-2000 you wrote: > > > > >you are right, the problem is caused by a context > manipulation - > > >Use unsets your Middle every time it gets executed. My > suggestion > > >is to not use Use in recursive functions, while this problem > > >doesn't get corrected. > > > > Judging from the nature of recursiveness, that's a little
hard,
> isn't it? ;-) > > > > Do you know if this problem has already been reported to > feedback? > > > > Kind regards, > > -- > > Ole Friis <[ole_f--post3--tele--dk]> > >
here is a pretty simple example showing the problem: temporary: "global temporary" recfun: func [level] [ use [temporary] [ if level < 1 [ temporary: "temporary" recfun level + 1 print ["Temporary:" temporary] ] ] ] recfun 0 ; The result: ** Script Error: temporary has no value. ** Where: temporary ; let's define a function r-use like this: r-use: func [ "Defines words local to a block." words [block!] "Local word(s) to the block" body [block!] "Block to evaluate" ] [ do function [] words body ] ; and now use R-use instead of native Use temporary: "global temporary" recfun: func [level] [ r-use [temporary] [ if level < 1 [ temporary: "temporary" recfun level + 1 print ["Temporary:" temporary] ] ] ] recfun 0 ; The result: Temporary: temporary Ladislav