From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Marco Maggi" Newsgroups: gmane.lisp.guile.user Subject: [announce] GEE/Streams 0.1 Date: Tue, 4 Dec 2007 20:34:56 +0100 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1196796918 4821 80.91.229.12 (4 Dec 2007 19:35:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 4 Dec 2007 19:35:18 +0000 (UTC) To: "guile-user" Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Dec 04 20:35:25 2007 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IzdY9-0006r9-6k for guile-user@m.gmane.org; Tue, 04 Dec 2007 20:35:21 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IzdXs-0005ek-Mv for guile-user@m.gmane.org; Tue, 04 Dec 2007 14:35:04 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IzdXo-0005cB-DQ for guile-user@gnu.org; Tue, 04 Dec 2007 14:35:00 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IzdXm-0005ZE-Jb for guile-user@gnu.org; Tue, 04 Dec 2007 14:35:00 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IzdXm-0005Yp-Dy for guile-user@gnu.org; Tue, 04 Dec 2007 14:34:58 -0500 Original-Received: from relay-pt4.poste.it ([62.241.4.118]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IzdXm-0004iY-18 for guile-user@gnu.org; Tue, 04 Dec 2007 14:34:58 -0500 Original-Received: from poste.it (192.168.144.52) by relay-pt4.poste.it (7.3.122) (authenticated as marco.maggi-ipsu@poste.it) id 475498CD00006D4A for guile-user@gnu.org; Tue, 4 Dec 2007 20:34:56 +0100 X-Sensitivity: 3 X-XaM3-API-Version: 4.3 (R1) (B3pl19) X-SenderIP: 81.211.213.188 X-detected-kernel: by monty-python.gnu.org: Solaris 9 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:6326 Archived-At: 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 symbol; that way GOOPS generic functions can dispatch methods for streams (unfortunately there is no way to select a base class); streams can be implemented with both a Scheme or C producer function. -- 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