Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

The future is here

Name: Anonymous 2015-05-04 20:18

https://github.com/LuxLang/lux

What is Lux?

Lux is a new programming language in the making. It's meant to be a functional, statically-typed Lisp that will run on several platforms, such as the Java Virtual Machine and JavaScript interpreters.

Types

They are implemented as plain-old data-structures whose expressions get eval'ed by the compiler and integrated into the type-checker. That means it's actually possible to generate types via functions. However, most of the types in the prelude are generated via several macros that provide a more pleasant syntax to types.

Module system

The module system is heavily inspired by ML, and both signatures & structures are suported.

The main difference between Lux and ML is that ML separates signaturs & structures from the rest of the language, whereas Lux implements them on-top of the base language.

Functional programming

While the means to do Java-interop will be provided (and there are already a few ways to do it that you can look-up inside lux.lux), Lux is commited to functional programming.

Functions are curried and partial application is as simple as just applying a function to less arguments than it needs (as in Haskell).

Macros

Unlike in most other lisps, Lux macros are monadic. The (Lux a) type is the one responsibly for the magic by treading CompilerState instances through macros. Macros must have the Macro and then be declared as macros.

However, just using the defmacro macro will take care of it for you.

However, in an upcoming release you'll get another macro for defining macros. It will be named defsyntax and will use monadic parsing of AST tokens to parse the syntax.

Name: Anonymous 2015-05-04 20:26

Shit. Wrong board.

Name: Anonymous 2015-05-04 20:53

>>1,2
nice going, shitbird

Name: Anonymous 2015-05-04 20:54

del

Name: Anonymous 2015-05-04 21:49

Thanks, Jews!

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List