0.10.3 • Published 8 years ago

lambda v0.10.3

Weekly downloads
443
License
MIT
Repository
github
Last release
8 years ago

Lambda

An effort to create the perfect programming language. Currently in alpha stage.

Technical Description

Lambda is an eagerly evaluated lambda calculus with static Hindley-Milner type system and a few additions.

The most relevant additions are:

  • a fixed point combinator suitable for eager languages (a.k.a. Z 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, the browser, or anything else.

Recall that Hindley-Milner also requires a let statement.

Example

The following Fibonacci implementation gives an idea of several implementation choices:

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.

Prerequisites

Node.js.

Installing

$ npm i -g lambda

Getting Started

$ lambda
> 'Hello, world!'
'Hello, world!'
>

More Information

See the Wiki.

0.10.3

8 years ago

0.10.2

8 years ago

0.10.1

8 years ago

0.9.2

8 years ago

0.9.1

8 years ago

0.9.0

8 years ago

0.8.5

9 years ago

0.8.4

9 years ago

0.8.3

9 years ago

0.8.2

9 years ago

0.8.0

9 years ago

0.7.4

9 years ago

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.4

9 years ago

0.6.3

9 years ago

0.6.2

9 years ago

0.6.1

9 years ago

0.6.0

9 years ago

0.5.4

9 years ago

0.5.3

9 years ago

0.5.2

9 years ago

0.5.0

9 years ago

0.5.1

9 years ago

0.0.2

11 years ago

0.0.1

11 years ago