MIFFS Is Fun For Sums

by rich

About this Manual

This manual is best viewed at http://modulo13.ath.cx/rich/miffs/manual/ with your favourite browser. If you're viewing this in the internal browser in th Swing version of MIFFS it will not look quite as nice.

Introduction

MIFFS is primarily a replacement for MS Calculator, which comes with Windows. If you type in any arithmetic expression it should evalutate as you expect it to, respecting all the rules of operator precedence (BIDMAS) and associativities. However, since I am interested in compilers, interpreters and functional languages it is also a baby functional interpreter along the lines of ML. I hope you find it useful and please contact me with suggestions (or bugs).

v1.7

Released 2005-12-07. Removed modules (v1.6). Added units and refactored the system to support several new frontends, including a GNU Readline version for the command-line junkies (i.e. me). Most of the built in functions are defined in the *.miffs files which are read on startup. Have a look in the JAR file if you want to read them.

v1.6

Added modules and support for 'use'-ing files, so you can customise the startup variables. Added an auto-insert function (see "the basics"). Added some libraries and the "vals" function. The display accuracy can now be toggled.

v1.5

Added a viewer for this manual to MIFFS. It doesn't display alphas properly, and generally looks a bit worse than a proper browser, but that's to be expected I suppose. I added support for complex numbers and a few more built-in functions (like complex trig functions). Added strings - you can't do much with them yet, though.

v1.4

Added functions by cases and proper pattern matching. Changed the return type of definitions to report what values have been added to the context. Added multi-line input. Getting pretty close to a basic ML interpreter. (I haven't added things like records, vectors etc as I don't really know what they are!)

v1.3

Added support for lists, lots of builtins and worked on functions. Still haven't sorted out the typing system, although I have added a lot more pseudo-typing. I shall have to look up how to do it properly.