| Epigram Programming Language |
Website Links For Programming |
Information AboutEpigram Programming Language |
| CATEGORIES ABOUT EPIGRAM PROGRAMMING LANGUAGE | |
| programming languages | |
| functional languages | |
| declarative programming languages | |
| dependently-typed formal languages | |
| theorem provers | |
|
The Epigram prototype was implemented by Conor McBride based on joint work with James McKinna. Its development is continued by the Epigram group in , Windows and Mac OS X . SYNTAX Epigram uses a two-dimensional syntax, with a LaTeX version and an ASCII version. Here are some examples from ''The Epigram Tutorial'' : Examples The natural numbers ...And in ASCII: ( ! ( ! ( n : Nat !
Recursion on naturals ...And in ASCII:
(all n : Nat => P n -> P (suc n)) -> all n : Nat => P n NatInd P mz ms zero => mz NatInd p mz ms (suc n) => ms n (NatInd P mz ms n) Addition ...And in ASCII: plus x y <= rec x {DEPENDENT TYPES IN EPIGRAM Epigram is essentially a Typed Lambda Calculus with Generalized Algebraic Data Type extensions, except for two extensions. First, types are first-class entities, of type ; types are arbitrary expressions of type , and type equivalence is defined in terms of the types' normal forms. Second, it has a dependent function type; instead of , , where is bound in to the value that the function's argument (of type ) eventually takes. Dependent types are an abstraction of incredible power. To sample some of the new capabilities it adds to a language, read ''The Epigram Tutorial'' . EXTERNAL LINKS
|
|
|