home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd6.lzh / TST / debugger.tst < prev    next >
Text File  |  1989-12-21  |  884b  |  66 lines

  1. .( Loading Debugger test...) cr
  2.  
  3. #include debugger.f83
  4.  
  5. debugger 
  6.  
  7.  
  8. .( 1: Define a debuggable tail-recursive function) cr
  9.  
  10. : foo ( n -- )
  11.   ?dup if ." foo " 1- tail-recurse else cr then ;
  12.  
  13. 12 foo 
  14. trace foo
  15. 12 foo 
  16. .profile
  17.  
  18.  
  19. .( 2: Redefine it as a recursive function) cr
  20.  
  21. : fie ( n -- )
  22.   ?dup if ." fie " 1- recurse else cr then ;
  23.  
  24. 12 fie 
  25. trace fie
  26. 12 fie 
  27. .profile
  28.  
  29.  
  30. .( 3: Run the break point function) cr
  31.  
  32. ( Only in interactive mode
  33.  
  34. break foo
  35.  
  36. 10 foo a .s cr 
  37. 10 foo c .s cr
  38. 10 foo e r .s cr
  39.  
  40. )
  41.  
  42.  
  43. .( 4: Fibonanci number function; recursive and tail recursive) cr
  44.  
  45. : fib ( n -- m)
  46.   dup 1 > if dup 1- recurse swap 2- recurse + then ;
  47.  
  48. trace fib
  49. 10 fib . cr
  50. .profile
  51.  
  52. : fib-tail ( a b c -- m)
  53.   ?dup if 1- rot rot over + swap rot tail-recurse else swap drop then ;
  54.  
  55. : fib-iter ( n -- m)
  56.   1 0 rot fib-tail ;
  57.  
  58. trace fib-tail
  59. trace fib-iter
  60. 20 fib-iter . cr
  61. .profile
  62.  
  63. forth only
  64.  
  65.  
  66.