Hi,

I am pleased and relieved to announce lablgtk-react, a project to ease
the use of Functional Reactive Programming (FRP) for lablgtk-based
graphical user interfaces.

Currently, the project is available as a preview but I am happy with the
way it is looking and with the programming style it offers and have
decided to announce it in order to receive feedback and comments.
Installation is not perfect and best thing for new codes is to try from
the src/tests directory.

Put simply, FRP makes it possible to write functional code whose inputs
and arguments originate from imperative event sources. For instance, you
can have a button and execute functional code each time it is clicked,
carrying a state of the button between presses. As such, it really only
benefits functional languages.

Currently, the source distribution contains one example: browser_test.
It creates a tab-based web browser where tabs are elements in a zipper
and are themselves updated in a functional way. The state which models
the browsing session is currently quite simple: the page title and the
page URI. However, the page title is shown in the tab label and in the
window title, it is also possible to move tabs around and the code is
_simple_.

My ultimate goal is to make a browser that I can call "intelligent" and
spend time on the interesting part instead of becoming mad because of
the UI.

Also, don't forget that OCaml is multi-paradigm: choose the right one for
each task and don't hesitate to mix them.

The only dependency is lablgtk2. You can use any FRP implementation that
provides "create" and "fold" (a very simple and mostly untested one is
provided as "MiniFRP" in the source). The example uses lablwebkit[1].

The project website includes some more infos and a longer introduction:
  http://lablgtk-react.forge.ocamlcore.org

[1] lablwebkit-1.4.0 (compatible with webkit-gtk >= 1.4.0) is available at
  http://forge.ocamlcore.org/frs/download.php/702/lablwebkit-1.4.0.tar.gz

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to