Developer James Coglan has created Fargo, a small experimental programming language for a asynchronous systems in JavaScript. It works in both Node.js and in browsers. Fargo is a modified version of Scheme, a dialect of LISP.
Considering that Douglas Crockford once called JavaScript "LISP in C's Clothing," why exactly do we need another Scheme-like language for working with it? According to the ReadMe, Fargo is "designed to ease asynchronous functional programming by providing features missing in JavaScript, namely tail recursion and some form of continuations."
"The main experiment here is that Fargo supports Ruby-style fibers for pausing and resuming async work," Coglan writes on the Fargo site.
According to the ReadMe, Fargo features the following syntax elements from Scheme:
define for binding variables and creating functionsbegin for bundling blocks of code as single expressionsif for conditional branchinglambda for creating first-class anonymous functionsquote for defining immutable listsand and or for boolean logicIt also adds more predicates, operators, list primitives and library functions.
Fargo is available under an MIT license.