Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Matrix and types (mike h) 2. Re: Matrix and types (Francesco Ariis) ---------------------------------------------------------------------- Message: 1 Date: Thu, 14 Mar 2019 11:10:06 +0000 From: mike h <mike_k_hough...@yahoo.co.uk> To: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: [Haskell-beginners] Matrix and types Message-ID: <f25f3321-f7ac-4b57-97f3-e4b340e10...@yahoo.co.uk> Content-Type: text/plain; charset="utf-8" Hi, As an exercise I want to write a Matrix library. Multiplication of two matrices is only defined when the the number of columns in the first matrix equals the number of rows in the second matrix. i.e. c1 == r2 So when writing the multiplication function I can check that c1 == r2 and do something. However what I really want to do, if possible, is to have the compiler catch the error. I’d appreciate any advice on how to approach this. I don’t want a full description of exactly what to do as that way I won’t have struggled or argued with the compiler - which for me is the best way to learn Haskell :) Thanks Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20190314/05213318/attachment-0001.html> ------------------------------ Message: 2 Date: Thu, 14 Mar 2019 12:37:20 +0100 From: Francesco Ariis <fa...@ariis.it> To: beginners@haskell.org Subject: Re: [Haskell-beginners] Matrix and types Message-ID: <20190314113720.xim35mdypfxxq...@x60s.casa> Content-Type: text/plain; charset=us-ascii Hello Mike, On Thu, Mar 14, 2019 at 11:10:06AM +0000, mike h wrote: > Multiplication of two matrices is only defined when the the number of columns > in the first matrix > equals the number of rows in the second matrix. i.e. c1 == r2 > > So when writing the multiplication function I can check that c1 == r2 and do > something. > However what I really want to do, if possible, is to have the compiler catch > the error. Type-level literals [1] or any kind of similar trickery should help you with having matrices checked at compile-time. [1] https://downloads.haskell.org/~ghc/7.10.1/docs/html/users_guide/type-level-literals.html ------------------------------ Subject: Digest Footer _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ End of Beginners Digest, Vol 129, Issue 3 *****************************************