Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Wolfgang Jeltsch <g9ks157k <at> acme.softbase.org>
Subject: ANNOUNCE: first Grapefruit release
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Saturday 14th February 2009 16:19:09 UTC (over 8 years ago)
Dear friends of Haskell and Functional Reactive Programming,

its my pleasure to announce the first official release of Grapefruit, a 
library for Functional Reactive Programming (FRP) with a focus on user 
interfaces.

With Grapefruit, you can implement reactive and interactive systems in a 
declarative style. User interfaces are described as networks of
communicating 
widgets and windows. Communication is done via different kinds of signals 
which describe temporal behavior.

Grapefruit consists of five packages with several interesting features:

grapefruit-frp: Functional Reactive Programming core

   * The FRP implementation uses a hybrid push/pull-based approach.

    * Signals can be memoized by binding them to variables – like
ordinary
    data structures.

    * Merging of event streams combines simultaneous events properly.

    * Signals cannot behave differently by starting them at different
times.
    The type system is used to enforce proper aging of signals.

grapefruit-records: A record system for Functional Reactive Programming

    * Input records can specify fields as being required or optional.

    * Uninteresting output fields can be ignored. The set of interesting
    fields is specified by pattern matching.

grapefruit-ui: Declarative user interface programming

    * The interface for UI programming is platform-independent and can be
    implemented on top of different UI toolkits.

    * A concrete implementation can be selected at compile time or runtime.

grapefruit-ui-gtk: GTK+-based implementation of the general UI interface

    * Gtk2Hs is used internally.

grapefruit-examples: examples demonstrating features of Grapefruit

    * Circular communication and switching are demonstrated.

Support for the following is planned for the future:

    * signals with incremental updates

    * user interfaces with changing structure

    * more kinds of UI components

    * graphical animations

Further information about Grapefruit is available on its wiki page at 
<http://haskell.org/haskellwiki/Grapefruit>.

If you have questions, applause or criticism, please get in touch with me.

Wolfgang Jeltsch
Principal Grapefruit developer
 
CD: 3ms