In that example, how would you call the `New` function?

On Monday, 22 October 2018 10:10:51 UTC+1, Sebastien Binet wrote:
>
> Hi Volker,
>
> On Mon, Oct 22, 2018 at 10:57 AM Volker Dobler <[email protected] 
> <javascript:>> wrote:
>
>> The Go 2 draft generics draft has been discussed a lot,
>> especially contracts have drawn a lot of attention and
>> other ways to limit the set of possible type were suggested.
>>
>> Most discussions orbited around very basic polymorphic
>> functions like polymorphic Min or a Map functions. I do consider
>> a polymorphic Min function to be nothing more than a
>> litmus test to generics: If a generic/polymorphic Min cannot
>> be written the proposal is insufficient. But I probably would
>> never write a polymorphic Min as a type specific Min is
>> 3 lines and basically impossible to get wrong and just because
>> Min looks nice under a proposal does not mean that the
>> proposed solution will lead to good code where generic or
>> polymorphic code would actually be beneficial: For complicated
>> data structures and algorithms.
>>
>> At least the original proposal mentions a generic Graph
>> data structure. Still without showing how e.g. DFS, BFS,
>> Shortest Paths would be a) implemented and b) used.
>>
>> I think it would be good if we could see how different proposals
>> (and especially the official one) would affect how generic code
>> is written and used. Especially code which is hard to get right
>> and really benefits from a "generic" implementation.
>>
>> I'd like to see generic/polymorphic:
>>  - Image manipulation (scaling, convolution, etc.) for various color 
>> models
>>  - Balanced trees (AVL or Red-Black)
>>  - Matrices of bool, int, float32/64, complex with inversion, 
>> LR-decomposition, eigenvalues
>>  - Fast Fourier Transformation (with ints, float32/64, complex64/128 and 
>> my float24 inputs)
>>  - Graph algorithms (DFS, BFS, Dijkstra, Bellman-Ford, Floyd-Warshall)
>> (feel free to add stuff from your field here).
>>
>> How would a package graph with a generic Graph data structure
>> and accompanying algorithms look like? How would I use such
>> a generic algorithm with nodes of my own type?
>>
>> How would I be using a generic 2d FFT package when my inputs
>> is complex128 and how if inputs are float32?
>>
>> I think that answers to these questions would be much more
>> helpful in evaluating generics than the current focus on the
>> syntax of Min and whether contracts can be done trough interfaces.
>>
>> Let's start with Dijkstra and the Graph example of the
>> original proposal: How would the implementation look like
>> and how would my code use this implementation?
>>
>
> I agree.
> I had started something like this, there:
> -  https://github.com/sbinet/go2-test/blob/master/ndarray/nd.go
> (my pet peeve is inter-operability with Python's protocol buffers and 
> NumPy n-dim arrays in particular)
>
> it would be great to have a code generator that takes e.g. Go-generics 
> draft-proposal code, and generates Go-1 compatible code (or, at the very 
> least a gofmt command that can make sure the code parses ok.)
>
> -s
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to