DynamoDS/Dynamo — pull request #1841 by Steell (2014-06-30 18:41:17+00:00)
Title: Partial Application for Multi-Output nodes

Implemented for Custom nodes, DSFunction nodes, and DSVarArgFunction nodes.

![partial](https://cloud.githubusercontent.com/assets/1699155/3433971/f6747e38-0084-11e4-98ed-5aaa9f00735a.PNG)

This required some private utility functions in _FunctionObject.ds_ in order to properly compose partial functions. Specifically, we want to create a function that first accepts the missing inputs, and then fetches the appropriate output from the output dictionary for multi-out nodes. The function that pulls the output is called `__GetOutput`. The function that handles this special composition is called `__ComposeBuffered`.

When compiling a partial application of a multi-output node, we create a buffered function composition that, at a high level, looks like:
```csharp
__ComposeBuffered({, __GetOutput()}, )
```
This isn't exactly what the compiled AST look like, but you get the idea.

@lukechurch @ke-yu @junmendoza