[Haskell-cafe] ANNOUNCE: Sylvia, a lambda calculus visualizer

Chris Wong chrisyco+haskell-cafe at gmail.com
Tue Oct 2 07:04:48 CEST 2012


On Tue, Oct 2, 2012 at 3:23 PM, Conrad Parker <conrad at metadecks.org> wrote:
> Nice, it builds and runs fine for me. Perhaps you could include a few
> more example commandlines to get started?  Running without arguments
> (as the README.mkd suggests) just prints the help text.

Thanks for pointing that out! I've added an examples page at

<https://github.com/lfairy/sylvia/wiki/Examples>

>> This is still in very early alpha, but it renders a fair number of
>> combinators correctly. I plan to add animated reduction (once I figure
>> out how to do it), and eventually develop this into a sandbox game of
>> some sort. I'm hoping to get some comments and ideas on how I can take
>> it from here.
>
> I'd love to see a game which incrementally teaches reduction and
> expansion steps in the way that DragonBox [http://dragonboxapp.com/]
> teaches algebra. That would be a learning mode like Angry Birds, where
> new combinator birds are introduced every few levels and a small
> selection of useful birds are provided to help solve each level.

Interesting! I'll have a closer look at it when I have the time.

> (Lambda calculus really should be a kids' game, grown-ups always make
> it seem more complex than it is).

That's exactly the point I'm trying to make :)

Heck, lambda calculus is just as simple as natural numbers (if not
simpler), yet people learn the former at university and the latter a
few months after they're born.

I think the difference is in the way they are taught. Want to teach
someone about numbers? Here's one orange. Here's two oranges. And look
-- put them together, and you get three.

Want to teach someone lambda calculus? Give 'em a textbook, and an
hour-long lecture about programming language theory.

The result doesn't surprise me one bit.

> Conrad.

On Tue, Oct 2, 2012 at 4:16 PM, Alistair Bayley <alistair at abayley.org> wrote:
> Not sure if it's what you're after, but I was reminded of this (models
> untyped lambda calculus):
>   http://worrydream.com/AlligatorEggs/

Thanks -- I've tried that before, and unfortunately it suffers the
same problem I've had with many other visualizations. Because it uses
colors to refer to variables, we end up with two problems:

1. Color blind people can't play it.

2. More subtly: colors -> absolute variable names -> lots of alpha
conversion. Alligators eating each other is fun. Swapping alligators
frantically to stop accidental capture is not.

Chris



More information about the Haskell-Cafe mailing list