Comment

Comment by galkk

The problem is that with current proposal Go severely lacks type inference, required for generics to look nice and clean.

A lot of the information is already in the definitions, there's no reason to repeat it, but Go chose to do that.

    // Reduce reduces a []T1 to a single value using a reduction function.
    func Reduce(type T1, T2)(s []T1, initializer T2, f func(T2, T1) T2) T2 {

    s := []int{1, 2, 3}
    sum := slices.Reduce(s, 0, func(i, j int) int { return i + j })
and the example from referenced article is even more outrageous

    t1 := hashtable.New(string, int)(8, func(key string, m int) int {
We have function types literally at the same exression, but Go requires to repeat it.
parent galkk 6 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton