egison: Programming language with non-linear pattern-matching against non-free data
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
An interpreter for Egison, a **pattern-matching-oriented**, purely functional programming language. We can directly represent pattern-matching against lists, multisets, sets, trees, graphs and any kind of data types.
We can find Egison programs in lib
and sample
directories.
This package also include Emacs Lisp file elisp/egison-mode.el
.
We can do non-linear pattern-matching against non-free data types in Egison. An non-free data type is a data type whose data have no canonical form, a standard way to represent that object. It enables us to write elegant programs.
Twin Primes
We can use pattern-matching for enumeration. The following code enumerates all twin primes from the infinite list of prime numbers with pattern-matching!
Poker Hands
The following code is the program that determines poker-hands written in Egison. All hands are expressed in a single pattern.
Mahjong
We can write a pattern even against mahjong tiles. We modularize patterns to represent complex mahjong hands.
Graphs
We can pattern-match against graphs. We can write program to solve the travelling salesman problem in a single pattern-matching expression.
Aren't thsese exciting? We can run these demonstrations on our website! Please view and try more demonstrations!
Egison makes programming dramatically simple. Please enjoy Egison!
Properties
Modules
- Language
- Language.Egison
- Language.Egison.AST
- Language.Egison.CmdOptions
- Language.Egison.Completion
- Language.Egison.Core
- Language.Egison.Data
- Language.Egison.Desugar
- Language.Egison.IState
- Language.Egison.MList
- Language.Egison.MathExpr
- Language.Egison.MathOutput
- Language.Egison.Parser
- Language.Egison.Parser.NonS
- Language.Egison.Parser.SExpr
- Language.Egison.Pretty
- PrettyMath
- Language.Egison.PrettyMath.AST
- Language.Egison.PrettyMath.AsciiMath
- Language.Egison.PrettyMath.Latex
- Language.Egison.PrettyMath.Mathematica
- Language.Egison.PrettyMath.Maxima
- Language.Egison.Primitives
- Language.Egison.Tensor
- Language.Egison.Types
- Language.Egison
Downloads
- egison-4.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees