[Haskell-cafe] vector-space and standard API for vectors

Henning Thielemann schlepptop at henning-thielemann.de
Sat Oct 30 06:07:28 EDT 2010


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. :-)

> Just my standard complaint: lack of support for semirings, modules, and
> other simple/general structures. How come everyone's in such a hurry to
> run off towards Euclidean spaces et al.?
> 
> I'd rather see,
> 
>     class Additive v where -- or AdditiveMonoid, if preferred
>         zeroV :: v
>         (^+^) :: v -> v -> v
> 
>     class Additive v => AdditiveGroup v where
>         negateV :: v -> v
> 
>     type family Scalar :: * -> *

Vector (Complex a) is a vector with respect to both 'a' and 'Complex a'.



More information about the Haskell-Cafe mailing list