https://github.com/egison/egison
Tip revision: fa7adfd9abf5f7cf61fbbdac6a2add4f46d0c659 authored by Satoshi Egi on 23 December 2019, 00:57:40 UTC
Merge branch 'master' of github.com:egison/egison
Merge branch 'master' of github.com:egison/egison
Tip revision: fa7adfd
egison.cabal
Name: egison
Version: 3.10.2
Synopsis: Programming language with non-linear pattern-matching against non-free data
Description:
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!
.
<<https://raw.githubusercontent.com/egison/egison/master/images/twin-primes-w700.png>>
.
/Poker Hands/
.
The following code is the program that determines poker-hands written in Egison.
All hands are expressed in a single pattern.
.
<<https://raw.githubusercontent.com/egison/egison/master/images/poker-hands-w700.png>>
.
/Mahjong/
.
We can write a pattern even against mahjong tiles.
We modularize patterns to represent complex mahjong hands.
.
<<https://raw.githubusercontent.com/egison/egison/master/images/mahjong-w700.png>>
.
/Graphs/
.
We can pattern-match against graphs.
We can write program to solve the travelling salesman problem in a single pattern-matching expression.
.
<<https://raw.githubusercontent.com/egison/egison/master/images/salesman-w700.png>>
.
Aren't thsese exciting?
We can run these demonstrations on our website!
Please view and try more demonstrations!
.
<http://www.egison.org>
.
Egison makes programming dramatically simple.
Please enjoy Egison!
Homepage: http://www.egison.org
License: MIT
License-file: LICENSE
Author: Satoshi Egi, Ryo Tanaka, Takahisa Watanabe, Kentaro Honda, Mayuko Kori, Momoko Hattori
Maintainer: Satoshi Egi <egi@egison.org>
Category: Compilers/Interpreters
Build-type: Simple
Cabal-version: >=1.8
Extra-Source-Files: benchmark/Benchmark.hs
Data-files: lib/core/*.egi lib/math/*.egi lib/math/common/*.egi lib/math/algebra/*.egi lib/math/analysis/*.egi lib/math/geometry/*.egi
sample/*.egi sample/io/*.egi sample/math/algebra/*.egi sample/math/analysis/*.egi sample/math/geometry/*.egi sample/math/number/*.egi sample/math/others/*.egi
test/*.egi test/lib/core/*.egi test/lib/math/*.egi
nons-test/test/*.egi nons-test/test/lib/core/*.egi
elisp/egison-mode.el
source-repository head
type: git
location: https://github.com/egison/egison.git
Library
Build-Depends:
base >= 4.7 && < 5
, array
, random
, containers
, unordered-containers
, haskeline
, transformers
, mtl >=2.2.1
, parsec >= 3.0
, megaparsec >= 7.0.0
, parser-combinators
, directory
, ghc
, ghc-paths
, text
, regex-tdfa
, process
, vector
, split
, hashable
, optparse-applicative
, prettyprinter
if !impl(ghc > 8.0)
Build-Depends: fail
Hs-Source-Dirs: hs-src
Exposed-Modules:
Language.Egison
Language.Egison.AST
Language.Egison.Core
Language.Egison.CmdOptions
Language.Egison.Desugar
Language.Egison.Data
Language.Egison.Types
Language.Egison.Tensor
Language.Egison.Parser
Language.Egison.ParserNonS
Language.Egison.Pretty
Language.Egison.Primitives
Language.Egison.Util
Language.Egison.MathExpr
Language.Egison.MathOutput
Other-modules: Paths_egison
ghc-options: -O3 -Wall -Wno-name-shadowing -Wno-incomplete-patterns
Test-Suite test
Type: exitcode-stdio-1.0
Hs-Source-Dirs: test
Main-Is: Test.hs
Build-Depends:
egison
, base >= 4.0 && < 5
, transformers
, mtl
, Glob
, HUnit
, test-framework
, test-framework-hunit
, filepath
Other-modules: Paths_egison
Benchmark benchmark
Type: exitcode-stdio-1.0
Hs-Source-Dirs: benchmark
Main-Is: Benchmark.hs
Build-Depends:
egison
, base >= 4.0 && < 5
, deepseq
, criterion >= 0.5
, transformers
, mtl
Other-modules: Paths_egison
Executable egison
Main-is: egison.hs
Build-depends:
egison
, base >= 4.0 && < 5
, array
, containers
, unordered-containers
, haskeline
, transformers
, mtl
, parsec >= 3.1
, directory
, ghc
, ghc-paths
, filepath
, text
, process
, vector
, optparse-applicative
if !impl(ghc > 8.0)
Build-Depends: semigroups
Hs-Source-Dirs: hs-src/Interpreter
Other-modules: Paths_egison
ghc-options: -O3 -threaded -eventlog -rtsopts -Wall -Wno-name-shadowing
Executable egison-translate
Main-is: translator.hs
Build-depends:
egison
, base >= 4.0 && < 5
, prettyprinter
, split
Hs-Source-Dirs: hs-src/Tool
ghc-options: -Wall -Wno-name-shadowing