I wrote: >Here is one way to do it. First, you have to interpret operations on >matrices as being elementwise applied. E.g, (*) is interpreted as zipWith >(zipWith (*)) rather than matrix multiply, and similar for (+) etc. You then >obtain a lazy semantics for the operations, where the extent of the >resulting matrix is the intersection of the extents of the argument >matrices. Second, you lift constants into infinite matrices containing the >constant, that is: fromInteger n = repeat (repeat n). Now your examples will >work as intended.
Ah, should of course be fromInteger n = repeat (repeat (fromInteger n)). Björn Lisper _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe