MagicHaskeller: An Inductive Functional Programming System for Casual/Beginner Haskell Programmers

Susumu Katayama, University of Miyazaki

(There is also an experimental variant of MagicHaskeller which synthesizes functions for Microsoft Excel.)

Use it now!

Specify a function f by writing a predicate as a boolean-valued expression. You will get functions generalizing the specification.



Limitations, ToDos, and Future Plans

How to Install the Library and the Server

If you are really interested, you can install the library and the server programs to your computer.
  1. Choose your OS
  2. Install Haskell Platform

    Please install the 2014 or 2015 version. (2015 is slightly better.)

  3. Set up the PATH variable.
    Add export PATH=$HOME/.cabal/bin/:$PATH to .bashrc or so.
    Add %APPDATA%\cabal\bin to Path. (But this may be unnecessary when using the 2015 version of Haskell Platform.)
  4. Install MagicHaskeller by typing

    $ cabal update
    $ cabal install -j MagicHaskeller
    (Ignore $ which just denotes the prompt.)

    On Windows + Haskell Platform 2014, you may need to use
    $ cabal install -j MagicHaskeller --flags="-NETWORKURI"
    instead. The point is to force to use the already-installed version of the network package.

    You may need to unregister some package temporarily, and restart installation again.
    In my case, I had to unregister the HTTP package, so
    $ ghc-pkg unregister HTTP
    $ cabal install -j MagicHaskeller

By installation you obtain the library, the MagicHaskeller executable that works as a stand-alone synthesizer REPL and a backend server, and the MagicHaskeller.cgi that is the CGI frontend program. I am preparing a material explaining their usage, but until then, please refer to the old web page for its library versions. The library API has not changed, if I remember it correctly.

Other Materials

extended abstract and the presentation file used for the presentation at Haskell 2013 Symposium. (Some links are updated to make usable in this environment, for those of you who are interested.)
AAIP 2013 stuff
AAIP 2015 stuff