const test = require('tape') const helpers = require('./helpers') const AST = require('../src/ast') const Evaluator = require('../src/evaluator') test('applies functions from core library', t => { t.plan(1) const tree = helpers.evaluate('(+ 1 2)') t.deepEqual(tree[0], new AST.Number({ value: 3 })) }) test('applies lambda functions', t => { t.plan(1) const tree = helpers.evaluate('((lambda (x y) (+ x y)) 1 2)') t.deepEqual(tree[0], new AST.Number({ value: 3 })) }) test('define', t => { t.plan(2) let tree = helpers.evaluate('(define x 5) (+ x 1)') t.deepEqual(tree[0], new AST.Number({ value: 6 })) tree = helpers.evaluate('(define plusOne (lambda (x) (+ x 1))) (plusOne 5)') t.deepEqual(tree[0], new AST.Number({ value: 6 })) })