Re: Heresy - Haskellesque lazy-list and functional tools with a Common Lisp slant.





Matthew Lamari wrote:
I've put up a new library, Heresy - I hope you find it useful.

Doc page (including some examples):
http://cl-heresy.sourceforge.net/Heresy.htm

Download: http://sourceforge.net/projects/cl-heresy/


Heresy is a list of utilities for lazy and functional programming in
Common Lisp. Function names are chosen and decorated so as to resemble
Haskell and/or CL equivalents; but to allow full import of exported
symbols into a typical namespace.

Basically, the library attempts to give the user control over the
lazy-evaluation to get planned, deterministic memory profile, where
suitable. Included is the ability to produce self-referencing lists,
and some control over the "degree" and manner of laziness in certain
list functions.

(I do NOT claim to be replicating Haskell or all Haskell idioms!)

A few functions (grouped-cdrs-by-car/, etc.) are those I found to be
just kind of handy in their own right.

I use it myself, and this is my first shot at sharing a lib so bear with
me - am sharing it in the hope it will be useful to others as well, or
to obtain comments that will help my own development.

Have fun!


License: BSD
Disclaimer: Use at own risk, I bear no responsibility, etc. etc.

TBD:

Get a mailing list for bug reports, and resolve some issues of the web
presentation/hosting.
Activate thread-safety mode and bordeaux-threads dependency.
Better document existing functions
Shrink the "cache"/link node
Activate and expose "lazy calculation" map (structurally supported but
currently not present)
Systematically incorporate more haskell or faux-CL functions (filtering
for are found to be useful/orthogonal in this context).

Cool, I especially envy your name. But have you thought of embedding
haskell into lisp?
It's a latest fashion revival into the long tradition. And after
embedded prolog, qi, contextL, aspectl, erlang etc haskell is the
next logical step. I never thought of learning prolog untill I sow it
embedded in lisp. Who know people might learn haskell very soon, as
liskell (oops that's taken).

Lisp, one language to rule them all.

Slobodan


.



Relevant Pages

  • Re: Cons cell archaic!?
    ... How would the implementation of a Lisp without a using cons look like? ... the irregularity in its often cited regular syntax. ... Lisp at core is based on functional programing on lists. ...
    (comp.lang.lisp)
  • Re: How powerful macros are?
    ... >> for software engineers to use arrays for everything, ... Did I miss something or is #an impossibly unbearable syntax in Lisp? ... and arrays are often slower for very short lists. ... I've also extended the language so that I have re-readable hash tables ...
    (comp.lang.lisp)
  • Re: Cons cell archaic!?
    ... why lisp has the cons problem and was never ... langs that deal with lists, vast majority of list usage is just simple ... and if it's not done in those other languages it must be ... Java and Lisp as languages worth consiering, ...
    (comp.lang.lisp)
  • Re: Lisp collections
    ... If a programming language specification talks about a data type, ... For example, The Common Lisp Hyperspec talks about lists, ... misapprehension that Lisp programmers generally just used lists to store ...
    (comp.lang.lisp)
  • Static or runtime type-checking (was: Program compression)
    ... I know that everything and the kitchen sink has been added to LISP. ... Seed7 seems to be rather limited in what it can easily support. ... list-processing primitives as applied to linked lists (push new ... Only internal types can be checked at compile time. ...
    (comp.programming)