packages feed

egison-4.1.0: egison.cabal

Name:                egison
Version:             4.1.0
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:       2.0

Extra-Source-Files:  benchmark/Benchmark.hs

Data-files:          lib/core/shell.egi
                     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/sat/*.egi sample/math/geometry/*.egi sample/math/number/*.egi
                     test/*.egi test/lib/core/*.egi test/lib/math/*.egi
                     elisp/egison-mode.el


source-repository head
  type: git
  location: https://github.com/egison/egison.git

Library
  default-language:    Haskell2010
  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
    , unicode-show
    , sweet-egison >= 0.1.0.2
  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.Completion
                   Language.Egison.Desugar
                   Language.Egison.Data
                   Language.Egison.Data.Collection
                   Language.Egison.Data.Utils
                   Language.Egison.EvalState
                   Language.Egison.Eval
                   Language.Egison.IExpr
                   Language.Egison.Match
                   Language.Egison.Math.Arith
                   Language.Egison.Math.Expr
                   Language.Egison.Math.Normalize
                   Language.Egison.Math.Rewrite
                   Language.Egison.Math
                   Language.Egison.MathOutput
                   Language.Egison.MList
                   Language.Egison.Parser
                   Language.Egison.Parser.SExpr
                   Language.Egison.Parser.NonS
                   Language.Egison.Pretty
                   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.Primitives.Arith
                   Language.Egison.Primitives.IO
                   Language.Egison.Primitives.String
                   Language.Egison.Primitives.Types
                   Language.Egison.Primitives.Utils
                   Language.Egison.RState
                   Language.Egison.Tensor
  Other-modules:   Paths_egison
  autogen-modules: Paths_egison
  ghc-options:  -O3 -Wall -Wno-name-shadowing -Wno-incomplete-patterns

Test-Suite test
  default-language:    Haskell2010
  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
  autogen-modules: Paths_egison
  ghc-options:  -Wall -Wno-name-shadowing

Benchmark benchmark
  default-language:    Haskell2010
  Type: exitcode-stdio-1.0
  Hs-Source-Dirs:  benchmark
  Main-Is: Benchmark.hs
  Build-Depends:
      egison
    , base >= 4.0 && < 5
    , criterion >= 0.5
  Other-modules:   Paths_egison
  autogen-modules: Paths_egison
  ghc-options:  -Wall -Wno-name-shadowing

Executable egison
  default-language:    Haskell2010
  Main-is:             egison.hs
  Build-depends:
      egison
    , base >= 4.0 && < 5
    , array
    , containers
    , exceptions
    , unordered-containers
    , haskeline
    , transformers
    , mtl
    , parsec >= 3.1
    , directory
    , ghc
    , ghc-paths
    , filepath
    , text
    , process
    , regex-tdfa
    , vector
    , optparse-applicative
  if !impl(ghc > 8.0)
    Build-Depends: semigroups
  Hs-Source-Dirs:      hs-src/Interpreter
  Other-modules:       Paths_egison
  autogen-modules: Paths_egison
  ghc-options:  -O3 -threaded -eventlog -rtsopts -Wall -Wno-name-shadowing

Executable egison-translate
  default-language:    Haskell2010
  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