Standard ML

ML = Meta Language

LISP

Common Lisp

Clojure

Racket

Scheme

Haskell

General purpose

Declarative, where the program describes what result is wanted, not how (the how is done for you, much like SQL where you describe what you want and the database does the how for you)

Statically typed, where variable types are known at compile time

Type inference, process of determining the appropriate types for expressions based on how they are used

Lazy evaluation, call-by-need, which is an evaluation strategy that delays evaluation of an expression until its value is needed (non-strict evaluation) and this helps avoid repeated evaluations (resource sharing)