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
unstable.
- 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!:
http://mypage.iu.edu/~gdweber/software/sifflet/home.html
* 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:
http://hackage.haskell.org/package/sifflet-libhttp://hackage.haskell.org/package/sifflet
* Home page:
http://mypage.iu.edu/~gdweber/software/sifflet/home.html
* Tutorial:
http://mypage.iu.edu/~gdweber/software/sifflet/doc/tutorial.html
--
___ ___ __ _
/ _ \ / _ \| | | | Gregory D. Weber, Associate Professor
/ /_\// / | | | /\ | | Indiana University East
/ /_\\/ /__| | |/ \| | http://mypage.iu.edu/~gdweber/
\____/\_____/\___/\__/ Tel. (765) 973-8420; FAX (765) 973-8550