The wonderful history of symbolic algebra at IBM (Scratchpad, Scratchpad II) 
resulted in a third system, Axiom, that has always seemed to me a bright lesson 
in types. It boldly goes into the topic with rigor, using category theory to 
decide what relationships make sense and what the nature of a tensor cross 
product of types truly is. 

A key part of that is the notion of more general and more specific types. This 
makes it possible to define a function that needs arguments supporting a less 
than order relationship so it could be applied to integer and real arguments, 
but not to complex numbers. This is just the mechanism that makes a generic 
Max() easy to create. Imagine a definition like:

func {T type, where a,b ∈T allows a<b} Max(a, b T) T {
if a < b {
    return b
}
return a
}

This is a nice way to answer the riddle and it is just what Axiom supports (but 
expresses differently).
http://axiom-developer.org/axiom-website/bookvol2.pdf 
<http://axiom-developer.org/axiom-website/bookvol2.pdf>
Michael Jones
michael.jo...@gmail.com

> On Jun 22, 2016, at 6:10 PM, 'Thomas Bushnell, BSG' via golang-nuts 
> <golang-nuts@googlegroups.com> wrote:
> 
> Really? How would you implement math.Max with generics? 
> 
> Thomas
> 
> On Wed, Jun 22, 2016, 5:45 AM Viktor Kojouharov <vkojouha...@gmail.com 
> <mailto:vkojouha...@gmail.com>> wrote:
> https://golang.org/pkg/math/ <https://golang.org/pkg/math/> and 
> https://golang.org/pkg/container/ <https://golang.org/pkg/container/> are 
> just two stdlib packages that would greatly benefit from some kind of 
> generics. I'm pretty sure there are more packages in the stdlib that would be 
> greatly improved. And that's just the standard library. 
> 
> 
> On Tuesday, June 21, 2016 at 5:29:37 PM UTC+3, Henry wrote:
> You still haven't provided any argument why generics is indispensable.
> The reason why I am no longer sure about my position in this issue is because 
> -while I agree that generics is useful- I don't think that generics is 
> essential. In fact, all of C++ features are useful and implemented in a very 
> efficient manner, but take a look what happened when you slab that many 
> features together. If you can do away with less, I think you should go for 
> less. The trouble is deprecating language features is a lot harder than 
> deprecating APIs in the standard library, while programming fads come and go.
> 
> 
> -- 
> 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 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <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 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <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