Explain the concept of functional programming and its key principles. Your response should contain at least 3 placeholders represented by square brackets, such as [address]. Highlight at least 2 sections in your answer with markdown, i.e. *highlighted section*. In your response, the word "function" should appear at least 3 times.
user