Heresy - Haskellesque lazy-list and functional tools with a CommonLisp slant.

This is a discussion on Heresy - Haskellesque lazy-list and functional tools with a CommonLisp slant. within the lisp forums in Programming Languages category; 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 ...

Go Back   Application Development Forum > Programming Languages > lisp

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 01-15-2008, 10:35 PM
Matthew Lamari
Guest
 
Default Heresy - Haskellesque lazy-list and functional tools with a CommonLisp slant.


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).

Reply With Quote
  #2  
Old 01-16-2008, 05:39 PM
Slobodan Blazeski
Guest
 
Default Re: Heresy - Haskellesque lazy-list and functional tools with aCommon 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


Reply With Quote
  #3  
Old 01-17-2008, 09:03 AM
Stanisław Halik
Guest
 
Default Re: Heresy - Haskellesque lazy-list and functional tools with a ?Common Lisp slant.

thus spoke Slobodan Blazeski <slobodan.blazeski@gmail.com>:

> Cool, I especially envy your name. But have you thought of embedding
> haskell into lisp?


I did. Basically changed all function applications to thunks with
arnesi's code walker. Works perfectly fine at the first glance, but
interfaces poorly with strict Lisp. Consider:

(lazily
(if (plusp (foobie-bletch (tharr 'foo)))
42
69))

Since the result of calling FOOBIE-BLETCH is a thunk, it must be
expanded to a strict value. But how about this?

(car (make-an-infinite-list))

Better stick with Series. There's not much fun in lazy evaluation short
of infinite streams anyway.

--
The Principle of Entropy holds that all electronic systems must
eventually decline into inert junk. This principle is unproved, and
previous attempts to accelerate the process have been cataclysmic
failures.
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 10:53 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.