Wooga.Lambda


Functional primitives for Unity3D

Unity3D being so far behind the .NET and Mono world, this library is an attempt at backporting some features found in more recent runtimes and C# libraries as well as pick up and harness useful ideas and patterns from other languages and/or programming paradigms.

Immutable and persistent data-structures, parser-combinators, monads for concurrency and control-flow as well as network and filesystem utilities can already be found here. Main influence came from the following projects csharp-monads, Haskell & F#.

All in all it's still pretty early days but as it turns out C# is actually not so bad for functional programming: parametric-polymorphism, delegates, higher-order functions/lambdas, type-inference and extension-methods are quite a good fit.

Samples & documentation

The library comes with ~~comprehensible~~ documentation and includes ~~several~~ tutorials.

Contributing and copyright

The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.

The library is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.

Fork me on GitHub