Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Haskell
Wiki community
Recent changes
Random page
HaskellWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Haskell in practice
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Applications Written in Haskell == Haskell is a general purpose programming language, and many, many applications have been written in it. The following free Haskell programs may serve as examples for constructing large applications in Haskell. Many more examples can be found in the [[Compilers and interpreters]] and [[Libraries and tools]] pages. A great many more Haskell projects are documented in the [http://haskell.org/communities/ community reports] and in the archives of the [[Haskell Weekly News]]. <DL><DT>[http://www.cs.bell-labs.com/~wadler/realworld/index.html "Real World Applications of Functional Programming"]<DD>Wadler's page on the subject mentions several large applications written in Haskell ([http://www.cs.bell-labs.com/~wadler/realworld/era.html Equational Reasoning Assistant] (see [[Haskell Equational Reasoning Assistant]]), [http://www.cs.bell-labs.com/~wadler/realworld/speechrec.html Mitre Speech Recognition System] <!-- Copyright owned by MITRE and under an open-source but not Free license; further, the Yale server containing the source is just gone. --> [http://www.cs.bell-labs.com/~wadler/realworld/natlangproc.html the LOLITA Natural Language Processing System] (abandoned in 2000), etc.) <dt>[http://www.pugscode.org/ Pugs] <dd>An implementation of Perl6. <!-- Very complex build; the libraries are now up-to-date, but Pugs itself requires some difficult changes. --> <dt>[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius] <dd>A shoot 'em up game using OpenGL. Takayuki Muranushi also wrote a [http://www.geocities.jp/takascience/index_en.html couple of other games] in Haskell. <!-- Uploaded. --> <dt>[http://www.haskell.org/docon DoCon], the Algebraic Domain Constructor <dd>The DoCon computer algebra system implements a good-sized piece of commutative algebra. One of the project aims is to test the efficiency of a real-world CA system based on pure functionality and "lazy" computation. <!-- Nonfree --> <dt>[http://www.haskell.org/dumatel Dumatel], a prover based on equational reasoning <dd>This is a study in combining Computer algebra, Term rewriting and Automatic proofs. The system is presented as a library of Haskell functions. <!-- Nonfree. --> <dt>[http://postmaster.cryp.to/ Postmaster] and [http://dietadukana.eblog.pl/ Dukan] <dd>A mail transport agent (MTA) written in Haskell. The primary focus of the project is to provide an MTA that's a lot more flexible than the current implementations, in particular when it comes to implementing junk mail countermeasures. <!-- Uploaded. --> <dt>[http://www.flippac.org/projects/flippi/ Flippi] <dd>A simple and lightweight Wiki clone written in plain Haskell 98 using the hierarchical libraries. There is a [http://www.scannedinavian.org/cgi-bin/flippi/flippi running trial copy].</dd> <!-- Currently down. --> <DT>[http://www.cs.waikato.ac.nz/Research/fm/amuzed.html AMuZed and ZooM] <DD> AMuZed is a graphical editing tool for the creation of mu-charts or microcharts. mu-charts consist of the 'well-defined' part of the Statecharts found in UML -- in that they have a semantics and, via the Z translation, a logic too. ZooM is a tool which takes the .muz file output of a created chart from AMuZed and generates a series of .tex files which contain the Z specification for that chart.</DD> <dt>[http://www.cs.chalmers.se/~koen/paradox/ Paradox] <dd>A tool that processes first-order logic problems and tries to find finite-domain models for them. <dt>[http://freshmeat.net/projects/checkrdf/ CheckRDF] <dd>A tool for downloading RDF site summaries and showing news in a text file and in an HTML file. <dt>[[Darcs]][http://abridgegame.org/darcs/]<dd>David's Advanced Revision Control System is yet another replacement for CVS. It is written in Haskell, and has been tested on Linux and MacOS X. darcs includes a cgi script, which can be used to view the contents of your repository. <!-- Darcs is adequately maintained; besides, it would be very difficult to Cabalize it in a way as portable as the current hacked-up Autotools setup. --> <DT>[http://www.cs.bris.ac.uk/~tweed/haskprog.html David Tweeds Haskell Programs]<DD>Currently David offers a LaTeX preprocessor. <dt>[http://www.cs.chalmers.se/~markus/fstStudio/ FstStudio]<dd>An application for construction and running of finite state transducers. <!-- Uploaded. --> <dt>[http://www.informatik.uni-bremen.de/~cxl/haskell-in-space/ Haskell in Space]<dd>An asteroids-like game. <!-- Uploaded. --> <DT>[http://www.ki.informatik.uni-frankfurt.de/~klose/ A Haskell Compiler Front-End ]<DD>This is a stand alone version of a compiler front-end, which was built by Norbert Klose as part of his master's thesis and which is described in detail there. See also his Lucky parser[http://www.ki.informatik.uni-frankfurt.de/~klose/lucky-manual/deutsch/node12.html] <!-- Lucky seems like it could be brought up to date, but not by me - I don't understand MonadZero and MonadPlus. --> <dt>[http://lsi.uniovi.es/~labra/LPS/LPS.html LPS: Language Prototyping System] <dd>A project that uses Haskell to build interpreters from monadic semantic descriptions.</dd> <!-- No dice. Endless dodgy use of extensions, and more recent GHCs seem to be stricter about deuplicate instances, so building it seems to be nigh-impossible. I've emailed the authors, though. --> <dt>[http://www.cs.utah.edu/flux/alchemy/ Knit]<dd>Knit is a component definition and linking language for systems programming based on the Unit component programming model. Knit lets you turn ordinary C code (e.g., bits of the Linux kernel) into components and link them together to build new programs. Since the freedom to do new things brings with it the freedom to make new errors, Knit provides a simple constraint system to catch component configuration errors. Knit also provides a cross-component inliner and schedules initialization and finalization of components. <br>Knit is released under a BSD-style license, is written in Haskell (and a little C) and includes a C parser and pretty-printer. A useful little utility included in the distribution is a tool for renaming symbols in ELF-format object files. <br>The current Knit release acts post-compilation: we compile C code as normal and then rename symbols in object files before linking. We are rewriting Knit to act pre-compilation: manipulating the source code before compilation. This will bring the much needed ability to import and export types from modules. <dt>[http://www.haskell.org/~petersen/haskell/linkchk/ linkchk]<dd>A heart-beat monitor for local network links for Linux. <DT>[http://www.cs.uu.nl/wiki/bin/view/HUT/AttributeGrammarSystem Utrecht Attribute Grammar System]<DD> We have used this attribute grammars sytem in the construction of our haskell compilers. It has proven to be an indispendable tool in keeping the various aspects apart. <dt>[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<dd>A simple action game; see also his [http://www24.brinkster.com/srineet/plot4/plot4.html Plot4], a clone of ''Connect Four''. <!-- The two are definitely fixable, but license status is unclear. I've emailed the author about it. --> <DT>[http://www.dtek.chalmers.se/~d95jowi/quakehaskell/index.html Quake Haskell] (for the source, see [[:Image:Quake.tar.gz]]) <!-- Way too hard to update or package, because of the C engine. But the source is preserved here, so mark this one done. --> <DT>[http://www-i2.informatik.rwth-aachen.de/Forschung/MCS/Truth/ Truth]<DD> Truth is a platform for the verification of distributed systems. <!-- Nonfree license. --> <dt>[http://web.archive.org/web/20060623041418/http://www.reid-consulting-uk.ltd.uk/alastair/publications/acp4is03/index.html TSL][http://www.reid-consulting-uk.ltd.uk/alastair/publications/acp4is03/index.html] <dd>TSL is a language for describing hierarchies of schedulers and reasoning about what kinds of locks can legally be used at each level and what race conditions those locks can prevent. <!-- Site is down, source not mentioned. --> <dt>[http://www.kfunigraz.ac.at/imawww/thaller/wolfgang/vop-intro.html VOP - Vision of Persistance]<dd>VOP is a program that parses [http://www.povray.org POV-Ray] scene description files and renders them using OpenGL. <!-- Nonfree. --> <dt>[http://www.haskell.org/~simonmar/bib.html A Web Server written in Haskell]<dd> It has been extended to produce [http://sourceforge.net/forum/forum.php?forum_id=253134 HWS-WP], the [http://www.mdstud.chalmers.se/~md9ms/hws-wp/ Haskell Web Server With Plugins]. <!-- A better version is up on Hackage as 'mohws'. --> <dt>[http://homepages.cwi.nl/~tromp/cl/cl.html Interpreters for lambda calculus and combinatory logic].</dd> <dt>[[Lambdabot]]<dd>A large IRC bot, dynamically extensible via plugins. <dt>[[Frag]]<dd>A first person 3D game written in Haskell. <dt>[https://github.com/yi-editor/yi Yi]<dd> An extensible text editor, reminiscent of vim. <dt>[http://www.cse.unsw.edu.au/~dons/hmp3.html hmp3]<dd> A curses-based mp3 player. <dt>[[Hoogle]]<dd>A Haskell API search engine <dt>[https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies Magic Cookies!]<dd>A commercial Android game using SDL2 multimedia written in the FRP flavour Yampa. <dt>[http://github.com/ivanperez-keera/haskanoid Haskanoid]<dd>A breakout game with Kinect and Wiimote support, SDL multimedia, written in the FRP DSL Yampa. <dt>[http://liftedsoftware.com/rHSWiki JSON Class Generator]<dd>A Mac application that allows the user to define classes and enums in an editor and provides the ability to generate Objective-C source code for them, that contain functions for serializing/deserializing to/from JSON. </DL> See also [[Libraries and tools]] and the [http://www.galois.com/cufp/ Commercial Users of Functional Programming] workshop.
Summary:
Please note that all contributions to HaskellWiki are considered to be released under simple permissive license (see
HaskellWiki:Copyrights
for details). If you don't want your writing to be edited mercilessly and redistributed at will, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Cancel
Editing help
(opens in new window)
Toggle limited content width