gulcii

graphical untyped lambda calculus interactive interpreter http://code.mathr.co.uk/gulcii

Latest on Hackage:0.2.0.3

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

GPL-2 licensed by Claude Heiland-Allen
Maintained by claude@mathr.co.uk

GULCII is an untyped lambda calculus interpreter supporting interactive modification of a running program with graphical display of graph reduction.

There are three variants of lambda abstraction: lazy, strict, and copy:

> x . f x x -- x is evaluated lazily with sharing > x ! f x x -- x is evaluated strictly and shared > x ? f x x -- x is copied before any evaluation

There is additional syntax sugar for natural numbers and lists, using http://en.wikipedia.org/wiki/Mogensen%E2%80%93Scott_encoding#Scott_encoding:

> [0,1,2,3]

There is a small standard library based loosely around the Haskell Prelude, with additions geared towards MIDI generation for live-coding music, implemented using a mechanism similar to Debug.Trace.trace:

> x y . { print : x } y

Quick start:

gulcii
:load mars
main
:quit

If you have Pure-data and Timidity, try:

timidity -iA -Oj &
pd -alsamidi ~/.cabal/share/gulcii-0.2.0.3/extra/fudi2midi.pd &
gulcii | pdsend 8765

See also: live-sequencer which has many more features (but no sharing during evaluation).

Used by 1 package:
comments powered byDisqus