Skip to content

Commit ac5b8d5

Browse files
committed
update README.md
1 parent 27e9a7b commit ac5b8d5

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

README.md

+19-17
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# The Egison Programming Language
22

3-
Egison is the pattern-matching-oriented purely functional programming language.
4-
We can directly represent pattern-matching against lists, multisets, sets, trees, graphs and any kind of data types.
3+
Egison is a functional programming language featuring its expressive pattern-matching facility.
4+
Egison allows users to define efficient and expressive pattern-matching methods for arbitrary user-defined data types including non-free data types such as lists, multisets, sets, trees, graphs, and mathematical expressions.
55
This is the repository of the interpreter of Egison.
66

77
For more information, visit <a target="_blank" href="https://www.egison.org">our website</a>.
88

9-
## Non-Linear Pattern-Matching against Non-Free Data Types
9+
## Non-Linear Pattern-Matching for Non-Free Data Types
1010

11-
We can do non-linear pattern-matching against non-free data types in Egison.
12-
An non-free data type is a data type whose data have no canonical form, a standard way to represent that object.
13-
It enables us to write elegant programs.
11+
We can describe non-linear pattern-matching for non-free data types in Egison.
12+
A non-free data type is a data type whose data have no canonical form, a standard way to represent that object.
13+
For example, multisets are non-free data types because the multiset {a,b,b} has two other equivalent but literally different forms {b,a,b} and {b,b,a}.
14+
Expressive pattern-matching for these data types enables us to write elegant programs.
1415

1516
### Twin Primes
1617

@@ -54,12 +55,12 @@ We can use it for pattern-matching also against graphs and tree-structures such
5455

5556
## Egison as a Computer Algebra System
5657

57-
As an application of Egison, we implemented a computer algebra system on Egison.
58-
The most part of this computer algebra system is written in Egison and extensible in Egison.
58+
As an application of Egison pattern matching, we have implemented a computer algebra system on Egison.
59+
The most part of this computer algebra system is written in Egison and extensible using Egison.
5960

6061
### Symbolic Algebra
6162

62-
Unbound variables are treated as symbols.
63+
Egison treats unbound variables as symbols.
6364

6465
```
6566
> x
@@ -279,16 +280,17 @@ Here are more samples.
279280

280281
There are <a target="_blank" href="https://ghc.haskell.org/trac/ghc/wiki/ViewPatterns#Relatedwork">a lot of existing work</a> for pattern-matching.
281282

282-
The advantage of Egison is that it achieves **all of the following features** at the same time.
283+
The advantage of Egison is that it fulfillss **all the following two requirement** at the same time.
283284

284-
* Modularization of the way of pattern-matching for each data type
285-
* Pattern-matching with multiple results (backtracking)
286-
* Non-linear pattern-matching with **lexical scoping**
287-
* Parametric polymorphism of pattern-constructors
285+
(1) Efficient backtracking algorithm for non-linear pattern matching.
286+
(2) Extensibility of patterns.
288287

289-
The <a target="_blank" href="https://www.egison.org/manual/mechanism.html">Pattern-Matching Mechanism</a> section in Egison developer's manual explains how we achieve that.
288+
Additionally, it fulfills the following requirements.
290289

291-
Please read <a target="_blank" href="http://arxiv.org/abs/1407.0729">our paper on arXiv.org</a> for details.
290+
(3) Polymorphism of patterns.
291+
(4) Pattern matching with infinitely many results.
292+
293+
Please read <a target="_blank" https://arxiv.org/abs/1808.10603">our paper</a> for details.
292294

293295
## Installation
294296

@@ -387,7 +389,7 @@ Please follow us.
387389

388390
## Acknowledgement
389391

390-
I thank Ryo Tanaka, Takahisa Watanabe, Takuya Kuwahara, Kentaro Honda, and Mayuko kori for their help to implement the interpreter.
392+
I thank Ryo Tanaka, Takahisa Watanabe, Takuya Kuwahara, Kentaro Honda, and Mayuko Kori for their help to implement the interpreter.
391393

392394
## License
393395

0 commit comments

Comments
 (0)