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
*****************************************

Reply via email to