
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 2.0.0.0, 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 application. What's New ---------- July 5, 2012, Version 2.0.0.0: * 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!: 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. - 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. References ---------- * Download: http://hackage.haskell.org/package/sifflet-lib http://hackage.haskell.org/package/sifflet * Home page: http://mypage.iu.edu/~gdweber/software/sifflet/home.html * Sifflet Tutorial: http://mypage.iu.edu/~gdweber/software/sifflet/doc/tutorial.html * RELEASE-NOTES: http://mypage.iu.edu/~gdweber/software/sifflet/RELEASE-NOTES * ISSUES: http://mypage.iu.edu/~gdweber/software/sifflet/ISSUES ------------------------------------------------------------------------ -- 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 []