
Hello all Some of you in the audience may have read Dave Keenan's paper, [To Dissect a Mockingbird][]. A subset of that may have wondered if it was possible to generate those pretty pictures programmatically. For that subset, I can answer to you -- yes, yes you can. [To Dissect a Mockingbird]: http://dkeenan.com/Lambda/ Sylvia is a lambda calculus visualizer. It takes in an expression in the untyped lambda calculus and spits out a pretty picture. 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. Obligatory links ---------------- Hackage: http://hackage.haskell.org/package/sylvia Source: https://github.com/lfairy/sylvia Documentation: https://github.com/lfairy/sylvia/wiki ----------------

On Wed, Sep 26, 2012 at 11:51 PM, Chris Wong
Hello all
Some of you in the audience may have read Dave Keenan's paper, [To Dissect a Mockingbird][]. A subset of that may have wondered if it was possible to generate those pretty pictures programmatically. For that subset, I can answer to you -- yes, yes you can.
[To Dissect a Mockingbird]: http://dkeenan.com/Lambda/
Sylvia is a lambda calculus visualizer. It takes in an expression in the untyped lambda calculus and spits out a pretty picture.
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.
Obligatory links ----------------
Hackage: http://hackage.haskell.org/package/sylvia
Source: https://github.com/lfairy/sylvia
Documentation: https://github.com/lfairy/sylvia/wiki
----------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
This is actually a lot of fun, thanks for sharing! I am looking forward to the animated reductions. :) Cheers, Darren

Sylvia is a lambda calculus visualizer.
Such a thing is certainly nice to have. I use this one for teaching: http://joerg.endrullis.de/lambdaCalculator.html

On 27 September 2012 14:51, Chris Wong
Hello all
Some of you in the audience may have read Dave Keenan's paper, [To Dissect a Mockingbird][]. A subset of that may have wondered if it was possible to generate those pretty pictures programmatically. For that subset, I can answer to you -- yes, yes you can.
[To Dissect a Mockingbird]: http://dkeenan.com/Lambda/
Sylvia is a lambda calculus visualizer. It takes in an expression in the untyped lambda calculus and spits out a pretty picture.
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.
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. (Lambda calculus really should be a kids' game, grown-ups always make it seem more complex than it is). Conrad.

On 2 October 2012 15:23, Conrad Parker
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.
(Lambda calculus really should be a kids' game, grown-ups always make it seem more complex than it is).
Not sure if it's what you're after, but I was reminded of this (models untyped lambda calculus): http://worrydream.com/AlligatorEggs/ Alistair

On Tue, Oct 2, 2012 at 3:23 PM, Conrad Parker
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
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
participants (5)
-
Alistair Bayley
-
Chris Wong
-
Conrad Parker
-
Darren Grant
-
Johannes Waldmann