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
[email protected]
> On Jun 22, 2016, at 6:10 PM, 'Thomas Bushnell, BSG' via golang-nuts
> <[email protected]> wrote:
>
> Really? How would you implement math.Max with generics?
>
> Thomas
>
> On Wed, Jun 22, 2016, 5:45 AM Viktor Kojouharov <[email protected]
> <mailto:[email protected]>> 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 [email protected]
> <mailto:[email protected]>.
> 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 [email protected]
> <mailto:[email protected]>.
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.