On Sat, Oct 30, 2010 at 2:07 PM, Henning Thielemann <[email protected]> wrote: > wren ng thornton schrieb: >> On 10/22/10 8:46 AM, Alexey Khudyakov wrote: >>> Hello everyone! >>> >>> It's well known that Num & Co type classes are not adequate for vectors >>> (I don't mean arrays). I have an idea how to address this problem. >>> >>> Conal Elliott wrote very nice set of type classes for vectors. >>> (Definition below). I used them for some time and quite pleased. Code is >>> concise and readable. >>> >>> > class AdditiveGroup v where >>> > zeroV :: v >>> > (^+^) :: v -> v -> v >>> > negateV :: v -> v >>> [...] >>> I'd like to know opinion of haskellers on this and specifically opinion >>> of Conal Eliott as author and maintainer (I CC'ed him) > > Looks like you are about to re-implement numeric-prelude. :-) > Only limited subset. Very limited. Everything is too big to be implemented
> Vector (Complex a) is a vector with respect to both 'a' and 'Complex a'. > It is but it's difficult to encode this. Type class below allows to have multiple scalars. But then type checker cannot infer type of 2 in expression `2 *^ vector' and so type signature must be added which is hardly usable class Module v s where (*^) :: s -> v -> v I think one is forced to convert real number to complex or use some operations specific to data type. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
