Malcolm McLean said:A function shuffles bits about in memory, a procedure activates an
external device attached to the computer.
What's wrong, illogical, or extraordinary about that? It's just
using the normal English words to make a distinction that anyone
could see is likely to be meaningful.
What's wrong with it is that the word "function" already has a well
defined meaning in C, and "procedure" has a well defined meaning
in a number of other programming languages.
The vast majority of programmers, if asked about the difference
between a function and a procedure, will say that a function
returns a value and a procedure doesn't, and will likely add that
C's version of a procedure is a void function.
You are, once again, insisting on using established words with
meanings that differ greatly from the way they're used *in the
context of programming*.
And how does your quoted definition of "procedure":
A process is a set or series of actions directed to some end or a
natural series of changes; a procedure is a series of actions
conducted in a certain manner, an established way of doing
imply that it performs I/O? Surely a subroutine that does nothing
but bit twiddeling would qualify as a "procedure" under that
Do you also use the English language dictionary definitions of
"pointer", "variable", and "object" when discussing C programming?
(The use of "variable" in your quoted definition of "function"
is entirely inconsistent with the way it's commonly used in
Let me rephrase the question I asked earlier: Can you cite an
independent source that uses the words "procedure" and "function"
in the way you do *in the context of computer programming*?
(An English dictionary definition does not qualify.)
If you don't wish to communicate, there are easier ways.