It is proposed that this article be deleted because of the following concern:
If you can address this concern by improving, copyediting, sourcing, renaming, or merging the page, please edit this page and do so. You may remove this message if you improve the article or otherwise object to deletion for any reason. Although not required, you are encouraged to explain why you object to the deletion, either in your edit summary or on the talk page. If this template is removed, do not replace it. This message has remained in place for seven days, so the article may be deleted without further notice. Nominator: Please consider notifying the author/project: {{subst:proposed deletion notify|Charity (programming language)|concern=A search for references failed to find significant coverage in reliable sources to comply with notability requirements. This included web searches for news coverage, books, and journals, which can be seen from the following links: <br /><span class="plainlinks">[https://www.google.com/search?as_eq=wikipedia&q=Charity+%28programming+language%29&num=50 Charity (programming language)]</span> – <span class="plainlinks">[https://www.google.com/search?q=Charity+%28programming+language%29&tbm=nws news], [https://www.google.com/search?tbs=bks:1&q=Charity+%28programming+language%29 books], [https://scholar.google.com/scholar?q=%22Charity+%28programming+language%29%22 scholar]</span><br /> Consequently, this article is about a subject that appears to lack sufficient notability. Please see the plain-language summary of our notability guidelines.}} ~~~~ Timestamp: 20200118221705 22:17, 18 January 2020 (UTC) Administrators: delete |
Paradigm | pure functional |
---|---|
Developer | The Charity Development Group |
First appeared | 1992[1] |
Preview release | 1.99.1 (beta)[2]
/ August 2000 |
OS | Linux, SunOS, Windows 9x, Windows NT[2] |
License | Non-commercial use only[3] |
Website | pll |
Charity is an experimental purely functional programming language, developed at the University of Calgary under the supervision of Robin Cockett. Based on ideas by Hagino Tatsuya, it is completely grounded in category theory.[4]
Disregarding interactions with the outside world, all Charity programs are guaranteed to terminate or stay productive.
“Charity was an interesting exercise in non-Turing-complete programming languages that is capable of expressing the Ackermann function. Alas, it seems to have not been active over the last 10 years. Though it would be of interest to anyone interested in seeing how far one can take a non-TC language” (links added).[5] The shown examples include also solving the Tower of Hanoi problem (source). Charity is also related to the total functional programming languages.
The language allows ordinary recursive data types, such as might be found in ML, which are required to be finite, and corecursive data types, which are allowed to be potentially infinite. The control structure for operating on recursive data types is primitive recursion or paramorphism, and the control structure for corecursive data types is primitive co-recursion or apomorphism. Neither control structure can operate over the other kind of data, so all paramorphisms terminate and all apomorphisms are productive.