[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