* [announce] GEE/Streams 0.1
@ 2007-12-04 19:34 Marco Maggi
2007-12-05 23:18 ` Andy Wingo
0 siblings, 1 reply; 3+ messages in thread
From: Marco Maggi @ 2007-12-04 19:34 UTC (permalink / raw)
To: guile-user
GEE/Streams is a C language library extension for Guile, the
GNU's Ubiquitous Intelligent Language for Extensions. It
implements a replacement for the (ice-9 streams) module
distributed with Guile.
If we are not Scheme newbies and we see a form starting with
(fold ...): we know immediately the structure of its
code. There is a great advantage if we compare this with the
time required to understand the control flow of an
equivalent explicitly coded form.
Streams are an answer to the questions: ``Is it possible to
apply a FOLD like procedure to a non--list sequence of
values? And what about MAP and FOR-EACH?''
Guile already comes with the (ice-9 streams) module, which
allows Scheme level code to iterate over non--list sequences
of values. GEE/Streams is a C language re-implementation of
the same interface that allows both Scheme and C code to
define streams.
The advantages upon the pure Scheme module are:
* speed, especially with long sequences;
* the procedures work with streams, lists and vectors;
* (gee misc streams-1) loads GOOPS: a class is defined and
bound to the <stream> symbol; that way GOOPS generic
functions can dispatch methods for streams (unfortunately
there is no way to select a base <sequence> class);
streams can be implemented with both a Scheme or C producer
function.
<https://gna.org/projects/gee>
<http://download.gna.org/gee/gee-streams/gee-streams-0.1b5-src.tar.bz2>
--
Marco Maggi
"Now feel the funk blast!"
Rage Against the Machine - "Calm like a bomb"
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [announce] GEE/Streams 0.1
2007-12-04 19:34 Marco Maggi
@ 2007-12-05 23:18 ` Andy Wingo
0 siblings, 0 replies; 3+ messages in thread
From: Andy Wingo @ 2007-12-05 23:18 UTC (permalink / raw)
To: Marco Maggi; +Cc: guile-user
Hi,
On Tue 04 Dec 2007 20:34, "Marco Maggi" <marco.maggi-ipsu@poste.it> writes:
> Guile already comes with the (ice-9 streams) module, which
> allows Scheme level code to iterate over non--list sequences
> of values. GEE/Streams is a C language re-implementation of
> the same interface that allows both Scheme and C code to
> define streams.
Haven't looked closely at what you have, but have you seen the paper:
http://cm.bell-labs.com/cm/cs/who/wadler/papers/lazyinstrict/lazyinstrict.ps
?
Andy
--
http://wingolog.org/
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [announce] GEE/Streams 0.1
@ 2007-12-07 6:32 Marco Maggi
0 siblings, 0 replies; 3+ messages in thread
From: Marco Maggi @ 2007-12-07 6:32 UTC (permalink / raw)
To: guile-user
"Andy Wingo" wrote:
>> Guile already comes with the (ice-9 streams) module, which
>> allows Scheme level code to iterate over non--list sequences
>> of values. GEE/Streams is a C language re-implementation of
>> the same interface that allows both Scheme and C code to
>> define streams.
>
>Haven't looked closely at what you have, but have you seen
the >paper:
>
>http://cm.bell-labs.com/cm/cs/who/wadler/papers/lazyinstrict/lazyinstrict.ps
It had the off-by-one error in it. Fixed.
--
Marco Maggi
"Now feel the funk blast!"
Rage Against the Machine - "Calm like a bomb"
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-12-07 6:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-07 6:32 [announce] GEE/Streams 0.1 Marco Maggi
-- strict thread matches above, loose matches on Subject: below --
2007-12-04 19:34 Marco Maggi
2007-12-05 23:18 ` Andy Wingo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).