Question: Definitions: command vs. procedure vs. function

I would like to know if there is a difference in the definition of the following words to describe a collection of code in Maple.  Specifically, is there a difference between an internal command, an internal procedure and an internal function?  Or are the folks who wrote Help using the three words interchangeably?  

For example, Help describes "restart" as a command.  That seems reasonable.  It also describes "evalf" as a command. 

Sin, cos and tan are described as functions.  That also appears to be reasonable.  "eval" and "convert" are also labeled as functions. 

However, "unassign" is a procedure as is "animate".  I could understand that since one might assume there is nothing returned. And yet one can assign an animation to a variable/name.

Section 1.4 of the Programming Guide discusses Maple Library Commands under the subheading of "procedures".  However, section 3.15 discusses "function types" which with section 3.8 implies these collections of code might be viewed as functions. (And then there is the function operator of a procedure.) 

I'm trying to compartmentalize the Maple language, but maybe I should not. My inclination is to call everything for which one uses a functional call (section 3.8) as a procedure.  Any assistance would be appreciated.

Please Wait...