Key concepts

What it means to support functional programming or be a functional programming language is not always clearly defined as many modern languages blur the lines between multiple programming paradigms. Even so, there are several characteristics that must be present to even begin the conversation.