What is Functional Programming?
The article defines functional programming as building programs mainly by composing functions, supported by higher-order functions, first-class values, immutable data, ADTs, and limited effects. It also distinguishes casual from pure FP and argues most value comes from the casual form.