1234567891011121314151617181920212223242526272829 |
- 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 }))
- })
|