> -----Original Message-----
> From: Richard Biener <[email protected]>
> Sent: Friday, January 10, 2025 02:43
> To: Robert Dubner <[email protected]>
> Cc: [email protected]; Joseph Myers <[email protected]>; gcc-
> [email protected]
> Subject: RE: [PATCH] COBOL 3/8 gen: GENERIC interface
>
> Btw, is recursion allowed?
>
> f = 1
> fact.
> f = f * n
> n = n - 1
> if n != 0 perform fact
> end-fact.
>
> or something like this to compute n!
I couldn't resist, especially after I made the assertion that it would
work. I needed to make sure it actually *would* work.
identification division.
program-id. prog.
data division.
working-storage section.
77 n pic 9 comp-5.
77 f pic 999 comp-5.
procedure division.
move 6 to n
move 1 to f
display "compute " n " factorial".
fact.
compute f = f * n
subtract 1 from n
if n not equal to zero then
perform fact
end-if.
end-fact.
display f.
end program prog.
$ ./test
compute 6 factorial
720
There. You have written a COBOL program. Or if that's too shameful, then
you can say you inspired a COBOL program.
That little program is so charmingly on the nose, I am going to put it
into our test suite.
> --
> Richard Biener <[email protected]>
> SUSE Software Solutions Germany GmbH,
> Frankenstrasse 146, 90461 Nuernberg, Germany;
> GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG
Nuernberg)