When implementing mgclisp, I took a shortcut (gasp! horror!) when implementing user defined functions. Scheme, and pretty much every other modern lisp when defining a function allows you to write something along the lines of the following expression:
When I set out to develop my own language, there were a several "milestones" I had set for myself along the way. Goals I could tick off to gauge my progress. One such goal I've been working towards for some time was to be able to pass Knuth's "Man or B
AVL trees are the oldest of the self-balancing binary search trees. Like other self-balancing BST's, AVL trees use rotations to enforce balancing. While the tight balancing conditions of AVL tree's result in quick search times, it also has the effect o
Normally when discussing parsing were concerned with assosciativity and operator precedence for constructing Abstract Syntax Trees using either recursive descent, or some stack driven algorithms for subsuming LL(1) or LALR(1) based grammars. When it co
Heaps are a family of trees frequently employed as priority queues as they allow the efficient location of the minimum (or maximum) element in a collection. They do this by enforcing the heap property which states that no child node has
-
Improving mgcLisp's define syntax
-
Separating the Men from the Boys, Knuth Style
-
Reducing rotations during deletion from AVL trees
-
Parsing Lisp: From Data To Code
-
Swiz Heaps: A deterministic modification of Randomized Meldable Heaps
-
Let's talk Eval/Apply
-
BST Deletion: Removal By Merge
-
Dictionary Based Compression: The LZW Algorithm
-
Taking Action: Compiling Procedures to P-Code
-
Making Decisions: Compiling If Statements to P-Code