Content deleted Content added
→top: removed unsourced parenthetical |
clean-up pass |
||
Line 1:
'''Hope''' is a small [[functional programming language]] developed in the 1970s at the [[University of Edinburgh]].<ref name="BMS">[[Rod Burstall|Burstall R.M]],
{{cite book
| title = Functional Programming with Hope
Line 7:
| publisher = Ellis Horwood Ltd
| publication-date = 1 April 1990
}}</
{{cite magazine▼
| title = A Hope Tutorial▼
| last = Bailey▼
| first = Roger▼
| magazine = [[Byte magazine|Byte]]▼
| volume = 10▼
| issue = 8 (August 1985)▼
| accessdate = 1 April 2015▼
▲}}</ref> It predates [[Miranda programming language|Miranda]] and [[Haskell (programming language)|Haskell]] and is contemporaneous with [[ML (programming language)|ML]], also developed at the University. Hope was derived from [[NPL (programming language)|NPL]],<ref name="design"/> a simple functional language developed by [[Rod Burstall]] and John Darlington in their work on program transformation.<ref> R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the Association for Computing Machinery, 24(1):44–67 (1977)</ref> NPL was, in turn, derived from [[Stephen Cole Kleene|Kleene recursion equations]]. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.{{Citation needed|date=February 2014}} Hope is an important language in the development of functional programming.
Hope was named for [[Sir Thomas Hope, 8th Baronet|Sir Thomas Hope]] (c. 1681–1771), a Scottish agricultural reformer, after whom ''Hope Park Square'' in Edinburgh, the ___location of the Department of Artificial Intelligence at the time of the development of Hope, was also named.
Line 27 ⟶ 18:
--- fact n <= n*fact(n-1);
Hope provides two built-in data structures: tuples and lists.<ref name=byte/>
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 (the language described in <ref name="BMS"/> has a lazy constructor for lists only). British Telecom embarked on a project with [[Imperial College London|Imperial College]] to implement a strict version. The first release was coded by Thanos Vassilakis in 1986. Further releases were coded by Mark Tasng of BT.▼
==Implementations==
▲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
Roger Bailey's Hope tutorial in the August 1985 issue of [[Byte (magazine)|BYTE]] references an interpreter for PC-DOS 2.0.<ref name=byte/>
==References==
{{Reflist
<ref name="design"> R.M. Burstall. Design considerations for a functional programming language. Invited paper, Proc. Infotech State of the Art Conf. “The Software Revolution”, Copenhagen, 45–57 (1977)</ref>
<ref name=byte>
▲{{cite magazine
▲| title = A Hope Tutorial
▲| last = Bailey
▲| first = Roger
▲| magazine = [[Byte magazine|Byte]]
▲| volume = 10
| issue = 8
| url = https://archive.org/stream/BYTE_Vol_10-08_1985-08_The_Amiga#page/n241/mode/2up
▲| accessdate = 1 April 2015
}}</ref>
}}
==External links==
|