# Un-currying with Actors

This is an illustration of a sequential computation with actors and graphic lambda calculus, based on the ideas from  Actors for the Ackermann machine .  It describes the inverse of the currying process described in  Currying by using zippers and an allusion to the cartesian theater.

Without further ado, let’s watch the play.

The preparation consists in introducing the cast and the initial actors diagram.

The play starts. The actor $c$ introduces $a$ to $b$ and dies, or maybe goes playing elsewhere.

We see the states of the actors $a$ and $b$, the other main character $d$ is waiting for his line, while the figuration $b1, ..., bN$ wait in the back of the stage, in artful positions.

The rest of the process consists in unzipping a graphic lambda calculus zipper. Zippers are very useful, because the unzipping process is sequential, i.e. it can happen in only one way. Therefore, by using zippers we can force a naturally distributed parallel computation to happen in a sequential way!

At the end of the computation, the two actors $a$ and $b$, which represent the two parts of the zipper, cancel one another. Eventually the graph $D$ is now connected with the output to the address $:out$ and with the inputs to the (addresses of the) figuration actors $b1, ..., bN$.

The graph $D$ corresponds to the graph $A$ from  the post   Currying by using zippers and an allusion to the cartesian theater  and the computation just described is a reversed computation of the one described in the mentioned previous post.

__________________________

As a side remark, graphic lambda calculus suggests that currying and un-currying should be eliminated at the preparation stage of a distributed computation. However, I took this example of computation with actors and GLC as a simple illustration and also for stressing that zippers can impose, if needed, an order of reduction moves in GLC.

__________________________