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.
via Fargo: A Scheme-like Programming Langauge That Runs on Node.js.
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
andor
for boolean logic
It also adds more predicates, operators, list primitives and library functions.
Fargo is available under an MIT license.
via Fargo: A Scheme-like Programming Langauge That Runs on Node.js.