FACTOID # 147: France is the top destination in the world for tourists, accounting for 11 percent of all tourist arrivals worldwide.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > ML programming language

ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of which ML was the metalanguage is pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda-calculus). It is known for its use of the Hindley-Milner type inference algorithm, which can infer the types of most values without requiring the extensive annotation often criticised in languages such as Java. Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions. ... Robin Milner is a prominent British computer scientist. ... The University of Edinburgh, founded in 1583, is a renowned centre for teaching and research in Edinburgh, Scotland. ... ISWIM is a programming language devised by Peter J. Landin and first described in his article, The next 700 programming languages, published in the CACM in 1966. ... An interactive theorem prover developed at the universities of Edinburgh and Stanford by Robin Milner and others. ... First-order predicate calculus or first-order logic (FOL) permits the formulation of quantified statements such as there exists an x such that. ... In computer science, polymorphism means allowing a single definition to be used with different types of data (specifically, different classes of objects). ... In computer science, the lambda calculus is a formal system designed to investigate function definition, function application, and recursion. ... Type inference is a feature predominant in functional programming languages such as Haskell and ML or OCaml. ... Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ...


ML is often referred to as an impure functional language, because it permits side-effects, and therefore imperative programming, unlike purely functional programming languages such as Haskell. In computer science, a side-effect is a property of a programming language function that it modifies some state other than its return value. ... In computer science, imperative programming, as opposed to declarative programming, is a programming paradigm that describes computation in terms of a program state and statements that change the program state. ... Haskell logo Haskell is a standardized pure functional programming language with non-strict semantics named after the logician Haskell Curry. ...


Features of ML include a call-by-value evaluation strategy, first class functions, automatic memory management through garbage collection, parametric polymorphism, static typing, type inference, algebraic data types, pattern matching, and exception handling. An evaluation strategy (or reduction strategy) for a programming language is a set of (usually deterministic) rules for defining the evaluation of expressions under β-reduction. ... In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. ... In computer science, garbage collection (also known as GC) is a form of automatic memory management. ... In computer science, polymorphism means allowing a single definition to be used with different types of data (specifically, different classes of objects). ... In computer science, a datatype or data type (often simply a type) is a name or label for a set of values and some operations which one can perform on that set of values. ... Type inference is a feature present in some strongly statically typed programming languages. ... In functional programming, new types can be defined, each of which has one or more constructors. ... Pattern matching is the act of checking for the presence of the constituents of a given pattern. ... Exception handling is a programming language construct or computer hardware mechanism designed to handle runtime errors or other problems (exceptions) which occur during the execution of a computer program. ...


Unlike Haskell, ML uses eager evaluation, which means that all subexpressions are always evaluated. One result of this is that you cannot use infinite lists per se. However, lazy evaluation and hence infinite lists can be simulated, through use of anonymous functions.


Today there are several languages in the ML family; the two major dialects are Standard ML and Caml, but others exist, including F# - an open research project that targets the Microsoft .NET platform. Ideas from ML have influenced numerous other languages, such as Haskell, Cyclone, and Nemerle. SML (Standard ML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. ... Objective Caml (OCaml) is a general-purpose programming language descended from the ML family, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. ... F# (pronounced F sharp) is a mixed functional and imperative programming language for the Microsoft . ... Haskell logo Haskell is a standardized pure functional programming language with non-strict semantics named after the logician Haskell Curry. ... The Cyclone programming language is intended to be a safe dialect of the C programming language. ... Nemerle logo Nemerle is a high-level statically-typed programming language for the . ...


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.


Examples of ML

Anatomy of a ML function

The "Hello World" of functional languages is the factorial function. Expressed as pure ML: To meet Wikipedias quality standards, this article or section may require cleanup. ... In mathematics, the factorial of a natural number n is the product of all positive integers less than and equal to n. ...

 fun fac : (fn: int -> int) 0 = 1 | fac n = n * fac (n-1); 

This describes the factorial as a recursive function, with a single terminating base case. It is similar to the descriptions of factorials found in mathematics textbooks. Much of ML code is similar to mathematics in facility and syntax.


The first line of the factorial function shown is optional, and describes the types of this function. It can be read as the function fac (fac) has type (:) function from integer to integer (fn: int -> int). That is, it takes an integer as an argument, and returns another integer. Rewritten without the unnecessary type annotation, it looks like:

 fun fac 0 = 1 | fac n = n * fac(n-1); 

The second line relies on pattern matching, an important part of ML programming. Note that parameters of a function are not in parentheses but separated by spaces. When the function's argument is 0 (zero) it will return the integer 1 (one). For all other cases the second line is tried. This is the recursion, and executes the function again until the base case is reached. Pattern matching is the act of checking for the presence of the constituents of a given pattern. ... A Sierpinski triangle —a confined recursion of triangles to form a geometric lattice. ...


External links

Major programming languages (more) (edit)

Industrial: ABAP | Ada | AWK | Assembly | ColdFusion | C | C++ | C# | COBOL | Delphi | Fortran | Java | JavaScript | Lisp | Managed C++ | Objective-C | Pascal | Perl | PHP | SQL | Python | RPG | Ruby | Smalltalk | Tcl | Visual Basic | VB.NET | Visual FoxPro There are a lot of kinds of listing. ... ABAP (Advanced Business Application Programming) is a high level programming language created by the German software company SAP. It is currently positioned as the language for programming SAPs Web Application Server, part of its NetWeaver platform for building business applications. ... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977–1983. ... AWK is a general purpose computer language that is designed for processing text based data, either in files or data streams. ... Assembly language commonly called assembly or asm, is a human-readable notation for the machine language that a specific computer architecture uses. ... ColdFusion is a tag based language similar to HTML, generally recognized to be fairly easy for people coming straight from HTML to learn. ... The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose computer programming language. ... The title given to this article is incorrect due to technical limitations. ... COBOL is a third-generation programming language. ... Delphi has been released in many versions, including older versions which have been released in magazines for non-profit application use Delphi is a programming language, first introduced in the Borland Delphi Integrated Development Environment (IDE). ... Fortran (also FORTRAN) is a computer programming language originally developed in the 1950s; it is still used for scientific computing and numerical computation half a century later. ... Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ... JavaScript is the name of Netscapes implementation of ECMAScript, a scripting programming language based on the concept of prototypes. ... Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ... It has been suggested that this article or section be merged with Managed C Plus Plus. ... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... Perl, also Practical Extraction and Report Language (a backronym, see below) is an interpreted procedural programming language designed by Larry Wall. ... PHP is a scripted programming language that can be used to create websites. ... SQL (commonly expanded to Structured Query Language - see History for the terms derivation) is the most popular computer language used to create, modify and retrieve data from relational database management systems. ... Python is an interpreted programming language created by Guido van Rossum in 1990. ... RPG is a native programming language for IBMs iSeries servers - the latest generation of midrange servers which included System/38, System/36 and AS/400 systems. ... Ruby is a reflective, object-oriented programming language. ... Smalltalk is an object-oriented, dynamically typed, reflective, programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s, influenced by Sketchpad and Simula. ... // Tcl (originally from Tool Command Language, but nonetheless conventionally rendered as Tcl rather than TCL; and pronounced like tickle) is a scripting language created by John Ousterhout that is generally thought to be easy to learn, but powerful in competent hands. ... The four colored boxes is the logo of VBA, and the two drums above them symbolize database connectivity Visual Basic (VB) is an event driven programming language and associated development environment created by Microsoft. ... Visual Basic . ... Visual FoxPro is a data-centric object-oriented and procedural programming language produced by Microsoft. ...

Academic: APL/J | Haskell | Logo | ML | Prolog | Scheme APL (for A Programming Language, or sometimes Array Processing Language) is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. ... The J programming language, developed in the early 90s by Ken Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL functional programming languages created by John Backus (of FORTRAN, ALGOL, and BNF fame). ... Haskell logo Haskell is a standardized pure functional programming language with non-strict semantics named after the logician Haskell Curry. ... The Logo programming language is an imperative programming language. ... Prolog is a logic programming language. ... Scheme is a functional programming language and a dialect of Lisp. ...

Other: ALGOL | BASIC | Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula ALGOL (short for ALGOrithmic Language) is a family of imperative computer programming languages originally developed in the mid 1950s which became the de facto standard way to report algorithms in print for almost the next 30 years. ... BASIC (Beginners All-purpose Symbolic Instruction Code) is a family of high-level programming languages. ... Clipper is a computer programming language that is used to create software programs that originally operated primarily under DOS. Although it is a powerful general-purpose programming language, it was primarily used to create database/business programs. ... Forth is a procedural, stack-oriented, reflective programming language and programming environment. ... Modula-2 is a computer programming language invented by Niklaus Wirth at ETH around 1978, as a successor to Modula, another language by him. ... Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2. ... PL/I (Programming Language One, pronounced pee el one) is an imperative computer programming language designed for scientific, engineering, and business applications. ... Simula is a programming language developed in the 1960s at the Norwegian Computing Centre in Oslo, primarily by Ole-Johan Dahl and Kristen Nygaard. ...


  Results from FactBites:
 
Comp.Lang.ML FAQ [Monthly Posting] (4974 words)
ML (which stands for Meta-Language) is a family of advanced programming languages with [usually] functional control structures, strict semantics, a strict polymorphic type system, and parametrized modules.
ML has many thousands of users, is taught at many universities (and is the first programming language taught at some).
It aims to be * an accurate reference implementation of the language specification, * a platform for experimentation with the language semantics or extensions to it, * a useful tool for educational purposes.
ML programming language - Definition, explanation (666 words)
ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at Edinburgh University, whose syntax is inspired by ISWIM.
Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of which ML was the metalanguage is pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda-calculus).
ML is often referred to as an impure functional language, because it permits imperative programming, and therefore, side-effectss, unlike purely functional programming languages such as Haskell.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.