[Haskell-cafe] ANNOUNCE: Sifflet visual programming language, release 1.0!

gdweber at iue.edu gdweber at iue.edu
Thu Aug 12 16:08:48 EDT 2010

Sifflet 1.0 is now available on Hackage.

Sifflet is a visual, functional programming language
and support system for students learning about recursion.
Sifflet programmers define functions by drawing diagrams,
and the Sifflet interpreter uses diagrams to show how the
function calls are evaluated.

New in This Release

-   Sifflet now has exporters to Scheme, Python, and Haskell and a small
    supporting "library" for each of those languages.
    (These exporters are intended for beginning students who are learning these
    languages, not for "industrial-strength" code production.)

-   Although the exporters apparently generate correct code,
    there are at present too many parentheses -- a few extras in Python,
    many extras in Haskell.  (No extra parentheses in Scheme, of course.)

-   Sifflet has a new number type, Sifflet.Data.Number.Number, which allows
    numbers to be exact or inexact, almost as in Scheme.
    Originally intended for the Scheme exporter, it is now
    also used internally by Sifflet's interpreter.

-   The code is reorganized.  There is now a separate library package,
    sifflet-lib, in addition to the sifflet package which provides
    only the executable.  At present, the library's API is highly

-   Sifflet has a new parser for user inputs, made with Parsec, 
    allowing more intuitive input
    of numbers (liberation from Haskell number syntax:
    for example, 0.0 can now be entered as 0.0, 0., or .0)
    and providing more intelligible error messages
    for some kinds of invalid input.

-   Sifflet requires Gtk2hs packages (gtk, glib, cairo) version 0.11;
    support for the 0.10 Gtk2hs packages is dropped.

About Sifflet

Sifflet is a visual, functional programming language
intended as an aid for learning about recursion.

*   A picture explains Sifflet better than words:
    please see the screenshot showing how to evaluate 3!:

*   Features:
    -   Visual editor.
    -   Visual tracer/debugger which shows how recursive and
        other function calls are evaluated.  To support active learning
        and avoid screen clutter, Sifflet displays only
        as much of the computation as the user requests.
    -   A carefully crafted tutorial with 31 pictures and about as many pages.
    -   Number, string, and list data types.
    -   A small collection of primitive functions.
    -   Runnable examples of compound functions.
    -   (New!) Sifflet functions can be "exported" to Scheme,
        Python 3, and Haskell.

*   Download:

*   Home page:

*   Tutorial:

   ___   ___  __     _      
  / _ \ / _ \| |    | |     Gregory D. Weber, Associate Professor
 / /_\// / | | | /\ | |     Indiana University East
/ /_\\/ /__| | |/  \| |     http://mypage.iu.edu/~gdweber/
\____/\_____/\___/\__/      Tel. (765) 973-8420; FAX (765) 973-8550

More information about the Haskell-Cafe mailing list