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).

近期下载者

相关文件


收藏者