CoffeeScript's port of the Scheme's Metacircular Evaluator – chapter 4.1 of the SICP.

Version: 0.1. History: `Ctrl + ↑` / `Ctrl + ↓`. Eval: `Ctrl + Enter` or the button "eval" below. Source: scheme-on-coffee on Github. ECMAScript info: http://dmitrysoshnikov.com

 Expression input: (+ 1 2 3) clear expression input on eval Examples (click to eval): 1. Sum: `(+ 1 2 3)` 2. Define a variable in the Global environment: `(define x 10)` 3. Define a procedure: ```(define (sum x y) (+ x y)) ``` 4. Eval the sequence (block) of expressions: ```(begin (define a 10) ; define "a" variable (define b 30) ; and "b" variable (define (square x) (* x x)) ; and a function (+ (square a) b)) ; and get the sum of square of "a" and "b" ``` 5. Recursion; define the factorial function and call it: ```(begin (define (factorial n) ; define the factorial function (if (= n 1) 1 (* n (factorial (- n 1))))) (factorial 5)) ; and call it for value 5 ``` 6. Map the list with a lambda expression: ```(map (lambda (x) (* x x)) ; anonymous function (list 1 2 3 4)) ; maps the list to '(1 4 9 16) ``` Output: