ID: Q72280
The information in this article applies to:
In Microsoft Word, you can write macros that use recursive functions.
In WordBasic, functions can call other functions; additionally, as in many other languages, these functions can call themselves. Any function that makes a call to itself is considered recursive. For more information on recursive functions, refer to the book, "Microsoft Quick C Programming" (published by the Waite Group), pages 164-167.
The following two examples figure the factorial of a number. The first example does not use recursion; the second example uses recursion.
Sample Macros to Figure the Factorial of a Number (n!)
   Sub MAIN()
      Input "Find Factorial Of: ", a     'Allows user input
      result = Factorial(a)              'Only function call
      Print result                       'Prints the final result
   End Sub
   Function Factorial(a)
      If a = 0 Then                      'If a = 0 return 1 (0!=1)
         sum = 1
      Else                               'calculate with loop
         sum = a
         For x = a - 1 To 1 Step - 1
            sum = sum * x
         Next x
      End If
      Factorial = sum
   End Function
   Sub MAIN()
      Input "Find Factorial Of: ", a     'Allows user input
      result = Factorial(a)
      Print result
   End Sub
   Function Factorial(a)
      If a = 0 Then                      '(0!=1 so return 1)
         result = 1
      Else
         result = a * Factorial(a - 1)   'if not 0 then
      End If                             'multiply "a" by
      Factorial = result                 'factorial of a-1
   End Function
Both methods return the same result; however, the recursive method is
slightly more efficient.
The Waite Group's book "Microsoft Quick C Programming," pages 164-167
Additional query words:
Keywords          : kbmacro wordnt kbmacroexample winword ntword macword word6 winword2 word7 word95 
Version           : WINDOWS:1.0,1.1,1.1a,2.0,2.0a,2.0a- CD,2.0b,2.0c,6.0,6.0a,6.0c,7.0,7.0a; MACINTOSH:6.0,6.0.1,6.0.1a
Platform          : MACINTOSH Win95 WINDOWS winnt
Issue type        : kbhowto
Last Reviewed: February 4, 1998