Those terms definitely have some differences!
Algorithm has the same meaning in cryptography as elsewhere in computer science: a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer. This is the most general term on your list.
A cipher is an algorithm you can use to encrypt or decrypt a message. For instance: RSA is a cipher. Not all the algorithms in cryptography are ciphers though.
A primitive is something low-level that will be used in cryptographic algorithms and ciphers, like Pseudo-Random Permutations or One-Way Hash Functions. They are tools to construct a crypto scheme.
Finally, I believe that functionalities are properties of your schemes, for instance perfect forward secrecy.