My code <https://go2goplay.golang.org/p/QP2REBLl5f5> shows that returning a 
generic function might be desirable.

The Filter function in my code <goog_279225190> is as follows:

        func Filter(
                type T interface{},
                Source Observable(T),
        )(pred func(T) bool) Operator(T, T, Source, FilterObservable(T, 
Source)) {
                return func(source Source) ((FilterObservable(T, Source))) {
                        return FilterObservable(T, Source){source, pred}
                }
        }

Despite the truth that Source is a type parameter of Filter function, the 
Filter function is actually returning a generic function. Source cannot be 
deduced by only looking at the input parameter of Filter function.

在 2020年6月24日星期三 UTC+8上午12:56:48,rog写道:
>
>
>
> On Tue, 23 Jun 2020 at 17:33, <teeli...@gmail.com <javascript:>> wrote:
>
>> Imagine the following function definition, under the current proposal (I 
>> believe this is correct):
>>
>>
>> func (s MyMap(K, V)) DoSomething(k K, v V) (func(type K Hashable) (k K) (V, 
>> error)) {...}
>>
>>
> I don't think that's quite right. You can't have function values with type 
> parameters.
>
> So I think your example could look more like this in practice:
>
>     func (s MyMap(K, V)) DoSomething(k K, v V) func(K) (V, error) { ... }
>  
> That doesn't seem too unreasonable to me FWIW. It reads nicely from left 
> to right, and everything except that first (K, V) declaration is just as 
> things are today.
>
>   cheers,
>     rog.
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/2863cb7a-4ba9-46b3-86e7-2043dfa1c9a7o%40googlegroups.com.

Reply via email to