ML is often referred to as
an impure functional
language, because it encapsulates
unlike purely
functional programming languages such
as
Unlike Haskell, ML uses eager
evaluation, which means that all subexpressions are always
evaluated. However, lazy evaluation can be achieved through the use
of closures.
Thus one can create and use infinite streams as in Haskell, but
their expression is comparatively indirect.
Today there are several languages in the ML family; the two major
dialects are Standard
ML (SML) and Caml,
but others exist, including F# —
a language that Microsoft supports for their .NET platform. Ideas
from ML have influenced numerous other languages,
like
ML's strengths are mostly applied in language design and
manipulation (compilers, analyzers, theorem provers), but it is a
general-purpose language also used in bioinformatics, financial
systems, and applications including a genealogical database, a
peer-to-peer client/server program, etc.
ML uses static scoping rules.
LISP(全名LISt
Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。
LISP有很多种方言,各个实现中的语言不完全一样。1980年代Guy
L. Steele编写了Common
Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。在Unix/Linux系统中,还有一种和Emacs一起的Emacs
Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展的)非常流行,并建立了自己的标准。
LISP语言的主要现代版本包括Common
Lisp和Scheme。
Lisp (historically, LISP)
is a family of computer programming
languages with a long history and a
distinctive, fully parenthesized Polish
prefix notation.Originally
specified in 1958, Lisp is the
second-oldest high-level
programming language in widespread use today;
only Fortran is
older (by one year). Like Fortran, Lisp has changed a great
deal since its early days, and a number
of dialects have
existed over its history. Today, the most widely known
general-purpose Lisp dialects are
Lisp was originally created as a practical mathematical notation
for computer programs, influenced by the notation
of Alonzo
Church's lambda
calculus. It quickly became the favored programming language
for
The name LISP derives from
"LISt Processing". Linked
lists are one of Lisp languages'
major data
structures, and Lisp source
code is itself made up of lists. As a result,
Lisp programs can manipulate source code as a data structure,
giving rise to the macro systems
that allow programmers to create new syntax or even
new
The
interchangeability of code and data also gives Lisp its instantly
recognizable syntax. All program code is written
as. A function call or syntactic
form is written as a list with the function or operator's name
first, and the arguments following; for instance, a function f that
takes three arguments might be called
using (f arg1 arg2
arg3).
Clojure (pronounced like "closure"dialect of
the Lisp programming
language created by Rich
Hickey. It is
a general-purpose language supporting interactive development that
encourages a
Clojure runs on
the Java
Virtual Machine, Common
Language Runtime and can compile
to JavaScript.
Like other Lisps, Clojure treats code
as data and has a
sophisticated macro system.