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

gdweber at iue.edu gdweber at iue.edu
Fri Jul 6 04:35:43 CEST 2012

I don't usually get this excited about a release, but after
nearly a year of not being able to do any work on Sifflet, I am now
*Extremely Happy* to announce --

Sifflet and sifflet-lib, now available on Hackage!

This version introduces a type checker and partial support
for higher order functions in Sifflet, the visual, functional 
programming language and support system for students learning 
about recursion.  Sifflet programmers define functions by drawing 
diagrams, and the Sifflet interpreter uses the diagrams to show how
function calls are evaluated.

Sifflet-lib is the library containing many modules of the Sifflet 

What's New

July 5, 2012, Version

*   Partial support for higher order functions, like map and filter.
    See Lesson 10 in the Sifflet Tutorial.

*   Sifflet now provides type checking and type inference.
    This should make it possible to provide exporters to
    languages, like Java, that require type declarations.
    (Unfortunately, the error messages for incorrectly typed
    functions are not yet friendly for novice programmers.)

*   Added a menu command (File / Save image ...) to save
    vector graphic images of functions in the Sifflet Workspace
    or Edit function windows.  Images can be saved in SVG,
    Postscript, and PDF formats.

*   Reorganized hierarchical modules in the library
    to conform to the recommended practice.  See the
    RELEASE-NOTES for details.

*   Several bugs are fixed, including one which crashed
    Sifflet when applying a function definition with an
    incomplete `if` tree.  See ISSUES for details.

*   There is a new file format for saving function definitions
    to support higher-order function types.  The new format,
    siffml 2.0, has a RELAX NG schema; siffml 1.0 files can
    still be opened in Sifflet 2.0.

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.
    -   Carefully crafted tutorial with 44 pictures,
        about 26 pages if printed.
    -   Number, string, and list data types.
    -   Small collection of primitive functions.
    -   Runnable examples of compound functions.
    -   Sifflet functions can be exported to Scheme, Python 3, and Haskell.


*   Download:

*   Home page:

*   Sifflet Tutorial:




Gregory D. Weber, Ph. D.                            :
Associate Professor of Informatics                 / \
Indiana University East                           0   :
Tel. (765) 973-8420; FAX (765) 973-8550              / \
http://mypage.iu.edu/~gdweber/                      1  []

More information about the Haskell-Cafe mailing list