diff options
Diffstat (limited to 'Ganlib/data/badluk_proc/fact.c2m')
| -rw-r--r-- | Ganlib/data/badluk_proc/fact.c2m | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Ganlib/data/badluk_proc/fact.c2m b/Ganlib/data/badluk_proc/fact.c2m new file mode 100644 index 0000000..45a6dfd --- /dev/null +++ b/Ganlib/data/badluk_proc/fact.c2m @@ -0,0 +1,19 @@ + ! + ! Example of a recursive procedure. + ! + ! input to "fact": *n* + ! output from "fact": *n_fact* + ! + INTEGER n n_fact prev_fact ; + :: >>n<< ; + IF n 1 = THEN + EVALUATE n_fact := 1 ; + ELSE + EVALUATE n := n 1 - ; + ! Here, "fact" calls itself + PROCEDURE fact ; + fact :: <<n>> >>prev_fact<< ; + EVALUATE n_fact := n 1 + prev_fact * ; + ENDIF ; + :: <<n_fact>> ; + QUIT " Recursive procedure *fact* XREF " . |
