Hi dean

Do you really need to load all the stuff into RAM?
Working in stream, e.g. with (in) (out) and (char) (called without arguments) 
or (rd) (binary read) needs slightly different software design, but would most 
likely be faster.

Also, (chop) is a rather expensive function (because it has to reserve new 
memory), probably you can easily improve performance by chopping all input once 
during initial reading, and then store the content as lists instead of strings 
which you chop in every filter function.
Maybe you can identify other areas where you could keep some stuff in variables 
instead of doing the same thing multiple times.

Then make sure that you don't have any code multiple times lying around, 
refactor common steps into functions.
In picolisp the source code is exactly the same structure as the RAM 
representation and execution flow,  it follows that shorter code usually 
results in better performance.

I hope this helps, good luck and have fun!


Reply via email to