The idea is to run code like the following on top of Node.js using a layer which makes the thing pretend it's not quite a Scheme system:
(define square (lambda (x) (* x x)))
(puts (map square '(1 2 3 4)))
(puts (let ((x 1)
(+ (+ x y) z)))
I don't quite get the purpose of having all those parenthesis, and for that matter I was never able to figure out LISP or Scheme.
The developer says: The main reason for Fargo's existence at present is to add fibers to the Node environment to make async programming easier. Fibers are a lightweight form of continuations that allow blocks of code to be suspended and resumed by the user. Many Ruby programmers are using fibers to let them write non-blocking code with blocking-style syntax. And, I can say after having written a few Node.js programs that the asynchronous programming model is a hurdle. It's desirable to have something to lower the hurdle a bit.
But, all these parenthesis?
Just some thoughts...