lambda
所属分类:编程语言基础
开发工具:JavaScript
文件大小:0KB
下载次数:0
上传日期:2016-11-05 15:30:30
上 传 者:
sh-1993
说明: Lambda编程语言
(The Lambda Programming Language)
文件列表:
Doxyfile (103028, 2016-10-01)
Gulpfile.js (2736, 2016-10-01)
LICENSE (1083, 2016-10-01)
doc/ (0, 2016-10-01)
doc/abstract-syntax.md (1236, 2016-10-01)
doc/compilation.md (20, 2016-10-01)
doc/domain.md (2636, 2016-10-01)
doc/evaluation.md (2458, 2016-10-01)
doc/free.md (792, 2016-10-01)
doc/lexical-syntax.md (23, 2016-10-01)
doc/marshalling.md (1382, 2016-10-01)
doc/typing.md (931, 2016-10-01)
package.json (759, 2016-10-01)
src/ (0, 2016-10-01)
src/AST.js (17345, 2016-10-01)
src/Characters.js (542, 2016-10-01)
src/Context.js (2230, 2016-10-01)
src/DefaultContext.js (2698, 2016-10-01)
src/Epilogue.js (20, 2016-10-01)
src/Errors.js (1313, 2016-10-01)
src/Lexer.js (5251, 2016-10-01)
src/Lists.js (8817, 2016-10-01)
src/Main.js (1401, 2016-10-01)
src/NodeJSContext.js (576, 2016-10-01)
src/Operators.js (29654, 2016-10-01)
src/Parser.js (16682, 2016-10-01)
src/Prologue.js (22, 2016-10-01)
src/Scalars.js (3445, 2016-10-01)
src/Strings.js (1578, 2016-10-01)
src/Types.js (11324, 2016-10-01)
src/Utilities.js (1305, 2016-10-01)
src/Values.js (12754, 2016-10-01)
test/ (0, 2016-10-01)
test/free.js (2589, 2016-10-01)
test/lexer.js (6937, 2016-10-01)
test/marshal.js (10046, 2016-10-01)
test/parser.js (9836, 2016-10-01)
... ...
# Lambda
An effort to create the perfect programming language. **Currently in alpha stage**.
## Technical Description
Lambda is an [eagerly evaluated](https://en.wikipedia.org/wiki/Eager_evaluation) [lambda calculus](https://en.wikipedia.org/wiki/Lambda_calculus) with [static Hindley-Milner type system](https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system) and a few additions.
The most relevant additions are:
- a [fixed point combinator](https://en.wikipedia.org/wiki/Fixed-point_combinator) suitable for eager languages (a.k.a. [Z combinator](https://en.wikipedia.org/wiki/Fixed-point_combinator#Strict_fixed_point_combinator));
- **if**-**then**-**else**;
- infix operators (e.g. `x + y * z`);
- exceptions;
- an expressive value domain that includes closures, booleans, strings, several numeric sets (naturals, integers, reals, complex), lists, and objects;
- all JavaScript APIs exposed by the underlying environment, whether it's [Node.js](https://nodejs.org/), the browser, or anything else.
Recall that Hindley-Milner also requires a [let statement](https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system#Let-polymorphism).
## Example
The following Fibonacci implementation gives an idea of several implementation choices:
```lambda
let fibonacci = fix fn f, n ->
if n < 2
then 1
else f (n - 1) + f (n - 2) in
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.map fibonacci
```
The above outputs `{1, 1, 2, 3, 5, 8, 13, 21, 34, 55}`.
For more information see the [Wiki](https://github.com/71104/lambda/wiki).
## Prerequisites
[Node.js](https://nodejs.org/).
## Installing
`$ npm i -g lambda`
## Getting Started
```
$ lambda
> 'Hello, world!'
'Hello, world!'
>
```
## More Information
See the [Wiki](https://github.com/71104/lambda/wiki).
近期下载者:
相关文件:
收藏者: