# recursion

recursion and an example
recursion

 addBit ```>>>> What exactly is the definition of recursion? Is it simply being caught in an infinite repeat loop <<<< I don't think so. >>>> Is it, from the standpoint of logic, necessarily tautological <<<< not really In short, I'm wondering what the relations between recursion, repetition, redundancy, truth, and self-reference are. A ponderous matter, I know, but I'd be curious to know if any of you have thoughts on it. keith seward <<<< Keith, I'm self taught myself but as I understood recursions the clou of it is to design a function in a way that is does just one "repeat" of a variable/unknown amount of "repeats" and then let it decide via the conditional whether it is done or it should call itself once again. On a simple example, very basic in assembler but not so in lingo: add 1 to a byte of n bit. If n = 3 the sequence of results could look like this: [0, 0, 0] [1, 0, 0] [0, 1, 0] [1, 1, 0] [0, 0, 1] [1, 0, 1] [0, 1, 1] [1, 1, 1] The logic is simple: If the digit to the left is 0 then make it 1, done. If it is 1 then make it 0, go to the next digit and (do the same with the next digit) I think there are other solutions to this based on repeat loops but when I encountered a problem which needed an addBit function I found it the most logical and easiest way to make the function call itself until done. on addBit LBits,digit -- lsb is on the left here if voidP(digit) then set digit = 1 -- some ritual error checking first if not listP(LBits) or digit < 1 then return "bad input" set Bit.Cnt = Count(LBits) if digit > Bit.Cnt then return -- the fun starts here set test = getat(LBits,Digit) if not test then setat LBits,digit,TRUE else setat LBits,digit,FALSE set Digit=Digit + 1 if Digit <= Bit.Cnt then addBit(LBits,Digit) end if end if -- this line is unnecessary since we deal with a list -- however, added for convenience of MessWin testing return LBits end ```

 Home shock + cgi Bits 'n pieces Director Lingo Shocklets Contact

pageID=l_recursion