Permalink
Switch branches/tags
Nothing to show
Commits on Jan 13, 2012
  1. Add the zip-with function.

    Scriptor committed Jan 13, 2012
  2. Make LazyList's set_first_and_rest call first() and rest() instead of…

    … using the attributes.
    Scriptor committed Jan 13, 2012
  3. Compilation changes.

    Scriptor committed Jan 13, 2012
  4. Create the concat function.

    Concatenates two lists together.
    Scriptor committed Jan 13, 2012
  5. Add the cycle and cycle-with functions.

    These create lazy, infinite lists by taking an initial seed list and extending it over and over. Cycle just repeats it, cycle-with uses a function on the previous seed to get the next one.
    Scriptor committed Jan 13, 2012
  6. Add the prn function, a wrapper for print.

    prn can be passed around and still be called as a function, as opposed to print and echo.
    Scriptor committed Jan 13, 2012
Commits on Jan 12, 2012
  1. Store tmp code generated by the condition in an if node.

    Otherwise it tries to add the code to body code inside the if expression, instead of before the if expression entirely.
    Scriptor committed Jan 12, 2012
Commits on Jan 9, 2012
  1. Create the PharenLazyList class.

    This is the main class for lazy lists in Pharen. It contains a lambda that when called should re
    turn a regular (non-lazy) list object. Calling first() on this will return the first() value of th
    e lazy list.
    Scriptor committed Jan 9, 2012
  2. Add the lazy macro.

    This turns the code that is wrapped by the macro call into a lambda and passes that to a new PharenLazyList object. The lambda generates a list where rest() should return another list, which can also be a lazy list.
    Scriptor committed Jan 9, 2012
Commits on Jan 8, 2012
  1. Only implement Countable and ArrayAccess in PharenList, not IPharenSeq.

    IPharenSeq should only contain the Pharen-specific seq functions. This way it can be used by lazy sequences.
    Scriptor committed Jan 8, 2012
Commits on Jan 7, 2012
  1. Add the PharenHashMap class.

    This acts as a functional and persistent hashmap to be used in Pharen. It currently uses copy-on-write when assoc'd on so the expectation is that hashmaps will stay fairly small.
    Scriptor committed Jan 7, 2012
  2. Add the test for assoc.

    Scriptor committed Jan 7, 2012
  3. Add the assoc function.

    Assoc takes a key, a value, and an existing hashmap and creates a new hashmap with that includes the new key-value pairing.
    Scriptor committed Jan 7, 2012
  4. Print the name of the test file being run.

    This makes it a little easier to tell which test is being failed on.
    Scriptor committed Jan 7, 2012
Commits on Jan 6, 2012
  1. Put the result of str_split in a variable before passing it to create…

    …_from_array.
    
    Apparently only variables can be passed as reference, not the result of a function call...can't explain that.
    Scriptor committed Jan 6, 2012
Commits on Dec 25, 2011
  1. Correctly divy up and compile the sections of a tail-recursed function.

    Previously it did a poor job separating out all the semantic sections of a function that is tail recursed. This would cause some lines/expressions to be compiled and emitted twice.
    
    Fixes GH-36
    Scriptor committed Dec 25, 2011
Commits on Dec 22, 2011
  1. Remove parenthesis at end of line containing let.

    This extra parenthesis was causing the last fwrite line to ret fwrite line to terminate early, thus terminating the loop.
    
    Fixes GH-35.
    Scriptor committed Dec 22, 2011
Commits on Aug 15, 2011
  1. Add delimeters for dictionary literal nodes.

    This allows them to be correctly returned by macros.
    
    Fixes GH-34
    Scriptor committed Aug 15, 2011
Commits on Aug 9, 2011
  1. Give PharenList it's own seq() method.

    Currently for lists this is basically an identity.
    Scriptor committed Aug 9, 2011
  2. Revert "Add . to the name rewriting rules."

    This reverts commit 40b214f.
    Scriptor committed Aug 9, 2011
  3. Compilation changes.

    Scriptor committed Aug 9, 2011
  4. Rename the static seq function to seqify so that sequence classes can…

    … have their own seq methods.
    Scriptor committed Aug 9, 2011
Commits on Aug 8, 2011