This is very cool, thanks! I may well end up using this.

On 23 August 2017 at 08:38, Walter Schulze <awalterschu...@gmail.com> wrote:
> I created gogoprotobuf, but I wanted to create a new code generator for go
> that does not only work for protocol buffers, but for all go types.
>
> Here is my next generation code generation for go:
> https://github.com/awalterschulze/goderive
> goderive parses your go code for functions which are not implemented and
> then generates these functions for you by deriving their implementations
> from the parameter types.
>
> These functions includes:
>   - recursive functions like GoString and CopyTo
>   - functions for sets like Contains and Union and
>   - functions from functional programming like Filter, Fmap and Compose
> (monad)
>   - future: concurrent functions like applicative Do (from haxl)
>
> Use cases:
>   - More maintainable code
>   - Experience or experiment with what it would be like to use generic
> functions in Go ... today.
>   - Create user stories for Go 2 in favour of or against generics.
>   - Don't argue about using labels and gotos, instead of just writing a
> contains function.
>   - Do functional programming in go.  Well only partly because mutability is
> still a thing.
>   - Less typing of: `if err != nil return err`. The compose function
> implements monadic error handling.
>   - future: less error prone concurrency.
>
> Ready for production and experimentation.
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to