User talk:Chunes

From Rosetta Code

"Code review" for Plain English

Hello Chunes, would you please take a look at my implementation of factorial? I'm not quite happy with it, and I hope could suggest some improvements. For example, I don't like the phrase To put a number's factorial into another number, but don't know how else to make it work. Same with Put the number's factorial into the number, which seems quite an unnatural thing to say in plain English. I would like to keep the recursive approach however, just make it more "idiomatic" if there's such thing as idiomatic Plain English. Thanks for help! --Dick de Bill (talk) 14:48, 25 September 2020 (UTC)

I've been struggling a bit myself with naming routines. I think I would go one of two ways with this. The first is
<lang plainenglish>A factorial is a number.

To compute a factorial of a number: ...

\Calling the routine Compute a factorial of 5. Write "" then the factorial on the console.</lang>

Declaring type aliases to make routines sound more natural is commonplace in the noodle, so I think it's idiomatic. The downside here is the indefinite article a sounds a bit off. You could also use some, but it still sounds strange, like there could be more than one result.
The second is
<lang plainenglish>To compute the factorial of a number giving another number:

...

\Calling the routine Compute the factorial of 5 giving a number. Write "" then the number on the console.</lang>

I've seen this "giving" phrasing in the noodle as well, and I think it's a fairly elegant solution.
Another (weird?) way you could go with it is just embrace mutating a single argument.
<lang plainenglish>To factorialize a number:

If the number is 0, bump the number; exit. Put the number minus 1 into another number. Factorialize the other number. Multiply the number by the other number.

\Calling the routine Put 5 into a number. Factorialize the number. Write "" then the number on the console.</lang> --Chunes (talk) 15:48, 25 September 2020 (UTC)