38 Commits (c4fed38dd9125944bff7314775474bbd1f7e30d5)

Author SHA1 Message Date
Jordan Orelli c4fed38dd9 refactored builtin type
this is done to avoid repeating all the arity checks all over the place.
That was getting a little tedious.
12 years ago
Jordan Orelli b9d2afce74 fixed quoting behavior
previously it was impossible to do the following:

    (define dave (quote (x y z)))
    dave

the interpreter would incorrectly try to evaluate the (x y z), because
there was no quote level being recorded, and it was seen as being the
same as a regular sexp.
12 years ago
Jordan Orelli c648ad597d added cons, car, cdr 12 years ago
Jordan Orelli 86929974cc added comparison operations 12 years ago
Jordan Orelli 591a0bfe29 added "symbol?" 12 years ago
Jordan Orelli ee8a7d3ee5 added "null" and "null?" 12 years ago
Jordan Orelli 86c288d116 added "list?" builtin 12 years ago
Jordan Orelli 7ec2538005 added "list" builtin 12 years ago
Jordan Orelli 8476cc531b added "length" 12 years ago
Jordan Orelli 6395089039 added "not" 12 years ago
Jordan Orelli 175e8abf1b added "begin" special form 12 years ago
Jordan Orelli 3bd216c75b fixed evaluation order problem in sexp 12 years ago
Jordan Orelli 51a27aaa9b added lambda support 12 years ago
Jordan Orelli 90c4009ada cleaning up a little bit 12 years ago
Jordan Orelli 18a8a9aea3 renamed proc to builtin 12 years ago
Jordan Orelli e86260e8dc environments now have outer environment pointers 12 years ago
Jordan Orelli ba1bab1e39 implemented set! 12 years ago
Jordan Orelli ec5cbdcaab added *if* 12 years ago
Jordan Orelli 107565dc04 added quote 12 years ago
Jordan Orelli 29677e19e4 can now define variables 12 years ago
Jordan Orelli 2b9322624f added division, prevent div by zero panics 12 years ago
Jordan Orelli ac8430076a refactoring a bit, defined accumulator struct
added subtraction and multiplication
12 years ago
Jordan Orelli 39286ce998 can now add numbers 12 years ago
Jordan Orelli 7eedbb4e92 reading symbols from environments 12 years ago
Jordan Orelli b6a88a15fb (fmt) 12 years ago
Jordan Orelli a3791fcc0e parsing! 12 years ago
Jordan Orelli 7bf30556ad split lexer out into lex.go 12 years ago
Jordan Orelli e54e565279 fixed some close paren lexing bugs 12 years ago
Jordan Orelli 101ee99edd better EOF handling in repl 12 years ago
Jordan Orelli 926911a7c6 cleaned up some redundancy 12 years ago
Jordan Orelli 42c2ffd0d6 more working primitive lex repl 12 years ago
Jordan Orelli e0c3f2de01 primitive repl lexing 12 years ago
Jordan Orelli 0de1044dda now lexing comments 12 years ago
Jordan Orelli 6dd75298e5 added string escaping 12 years ago
Jordan Orelli ab97429e98 lexing strings 12 years ago
Jordan Orelli 1a6b286b5c lexer produces tokens now, not strings
can also lex integers and floats now
12 years ago
Jordan Orelli 816da3fbbc input is now io.Reader 12 years ago
Jordan Orelli 79c570c53e basic lexing 12 years ago