Skip to content
This repository has been archived by the owner on Feb 8, 2022. It is now read-only.

Array instances #130

Open
rklaehn opened this issue Dec 9, 2015 · 5 comments
Open

Array instances #130

rklaehn opened this issue Dec 9, 2015 · 5 comments

Comments

@rklaehn
Copy link
Collaborator

rklaehn commented Dec 9, 2015

Add instances for arrays.

Arrays are essential in many cases for compact representation, so I think having array instances would be good.

I care most about really basic things like Eq[A] and Order[A], but I guess it would do no harm to just copy everything applicable to algebra from https://github.com/non/spire/blob/master/core/shared/src/main/scala/spire/std/array.scala

@denisrosset
Copy link
Contributor

Agree totally.

@rklaehn
Copy link
Collaborator Author

rklaehn commented Dec 9, 2015

Should this use @specialized or not?

@denisrosset
Copy link
Contributor

Thanks @rklaehn, I guess the issue can be closed!

@rklaehn
Copy link
Collaborator Author

rklaehn commented Dec 10, 2015

Well, it depends. There are a lot of instances that we could provide. I just copied over the essential (for me) ones. But I think we should at least provide Monoid before we close the issue.

@johnynek
Copy link
Contributor

We probably want a few:

def concatMonoid[T: ClassTag]: Monoid[Array[T]]
// then the usual vector space style ones, which are probably what people want:
def extendingPointwiseSemigroup[T: ClassTag: Semigroup]: Semigroup[Array[T]]
// you can do pretty much everything this way in core except Field, I think.
// It is a shame we have to write those all out. Maybe macros could help here.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants