Hope (programming language): Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 1:
'''Hope''' is a small [[functional (programming)|functional]] [[programming language]], one developed in the early 1980s prior to [[Miranda programming language|Miranda]] and [[Haskell programming language|Haskell]]. It is notable for being the first language with call-by-pattern evaluation and [[algebraic data typestype]]s. Although Hope is essentially no longer used, it is an important language in the development of functional programming.
 
A Hope tutorial by Roger Bailey was featured in the August [[1985]] issue of [[Byte magazine|Byte]] on [[declarative programming]].
The first implementation of Hope was strict, but since that one there have been lazy versions and strict versions with lazy constructors.
 
A factorial program in Hope is
Line 8:
--- fact n <= n*fact(n-1);
Unlike in [[Haskell programming language|Haskell]], changing the order of the clauses would not change the meaning of the program, because Hope's pattern matching always favors more specific patterns over less specific ones.
 
The first implementation of Hope was [[strict evaluation|strict]], but since that one there have been [[lazy evaluation|lazy]] versions and strict versions with lazy constructors.
 
==External link==
*[http://www.soi.city.ac.uk/~ross/Hope/ Hope homepage]
*[http://haskell.org/haskellwiki/History_of_Haskell History of Haskell] which mentions Hope being the first language with algebraic data types.
*[http://www.devili.iki.fi/library/issue/136.en.html table of contents of Byte, August 1985]
 
{{compu-lang-stub}}