Functional programming jargon in plain English
These definitions don't really give you the idea, rather often just code examples..<p>"The ideas", in my view:<p>Monoid = units that can be joined together<p>Functor = context for running a single-input function<p>Applicative = context for multi-input functions<p>Monad  = context for sequence-dependent operations<p>Lifting = converting from one context to another<p>Sum type = something is either A or B or C..<p>Product type = a record = something is both A and B and C<p>Partial application = defaulting an argument to a function<p>Currying = passing some arguments later = rephrasing a function to return a functions of n-1 arguments when given 1, st. the final function will compute the desired result<p>EDIT:
Context = compiler information that changes how the program will be interpreted (, executed, compiled,...)<p>Eg., context = run in the future, run across a list, redirect the i/o, ...