Skip to content

Instantly share code, notes, and snippets.

@voldern
Created September 5, 2014 13:22
Show Gist options
  • Save voldern/a7d48580b7e0712c4d9e to your computer and use it in GitHub Desktop.
Save voldern/a7d48580b7e0712c4d9e to your computer and use it in GitHub Desktop.
✓ parse single symbol
✓ parse boolean
✓ parse integer
✓ parse string
✓ parse list of symbols
✓ parse list of mixed types
✓ parse on nested list
✓ parse exception missing paren
✓ parse exception extra paren
✓ parse with extra whitespace
✓ parse comments
✓ parse larger example
✓ expand single quoted symbol
✓ nested quotes
✓ expand crazy quote combo
✓ expand quasiquote
✓ expand unquote
✓ expand unquotesplicing
✓ evaluating boolean
✓ evaluating integer
✓ evaluating string
✓ evaluating quote
✓ evaluating quasiquote
✓ evaluating quasiquote with unquote
✓ evaluating quasiquote with unquotesplicing
✓ evaluating atom function
✓ evaluating eq function
✓ basic math operators
✓ math operators only work on numbers
✓ nested expressions
✓ basic if statement
✓ that only correct branch is evaluated
✓ if with sub expressions
✓ joining strings
✓ substr
✓ upper
✓ lower
✓ simple lookup
✓ lookup on missing raises exception
✓ lookup from inner env
✓ lookup deeply nested var
✓ extend returns new environment
✓ set changes environment in place
✓ redefined variables illegal
✓ evaluating symbol
✓ lookup missing variable
✓ define
✓ define with wrong number of arguments
✓ define with nonsymbol as variable
✓ variable lookup after define
✓ lambda evaluates to lambda
✓ lambda closure keeps defining env
✓ lambda closure holds function
✓ lambda arguments are list
✓ lambda number of arguments
✓ lambda variable nubmber of arguments
✓ lambda fails on invalid argument definition
✓ defining lambda with error in body
✓ evaluating call to closure
✓ evaluating call to closure with arguments
✓ evaluating call to closure with variable list of arguments
✓ call to function should evaluate arguments
✓ evaluating call to closure with free variables
✓ calling very simple function in environment
✓ calling lambda directly
✓ calling complex expression which evaluates to function
✓ calling atom raises exception
✓ test make sure arguments to functions are evaluated
✓ calling with wrong number of arguments
✓ calling function recursively
✓ creating lists by quoting
✓ creating list with cons
✓ creating longer lists with only cons
✓ getting first element from list
✓ getting first element from empty list
✓ getting tail of list
✓ checking whether list is empty
✓ creating list using list
✓ appending one list to another
✓ defining and evaluating simple macro
✓ defining and evaluating simple expanding macro
✓ defining and evaluating unquotesplicing macro
✓ defining macro outside of top level should fail
✓ not
✓ or
✓ and
✓ xor
✓ greater or equal
✓ less or equal
✓ sum
✓ length
✓ filter
✓ map
✓ reverse
✓ range
✓ sort
✓ capitalize
# tests 195
# pass 195
✓ ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment