Send Beginners mailing list submissions to
[email protected]
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
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. understanding type constructors and value constructors
(Anwar Ludin)
2. Re: understanding type constructors and value constructors
(Alex Belanger)
3. Re: understanding type constructors and value constructors
(Imants Cekusins)
4. Re: understanding type constructors and value constructors
(Anwar Ludin)
----------------------------------------------------------------------
Message: 1
Date: Thu, 14 Sep 2017 06:04:26 +0200
From: Anwar Ludin <[email protected]>
To: [email protected]
Subject: [Haskell-beginners] understanding type constructors and value
constructors
Message-ID:
<camjsputedmbruzqhygfvf6dkekvb_uwqrz4nhpr3t0znr9v...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Hello everyone,
I have just started studying Haskell and I am having a hard time
understanding type and value constructors.
So to create a new type, you write something like:
data FinancialInstrument = Financial String Double
deriving (Eq, Show)
and then you can write:
ibm = Financial "ibm" 150
OK all good. This initializes a FinancialInstrument. What I don't quite
grasp is what is the purpose of Financial (the data/value constructor)? And
from what I have read, you could have also written:
data FinancialInstrument = FinancialInstrument String Double
deriving (Eq, Show)
To me the second expression is a lot closer to the typical OOP way of doing
things (where the type name and constructor(s) have the same name). Why
would someone prefer the first notation?
Once a value has been constructed, how can I access its fields?
Is there a way to create values using named parameters?
Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20170914/ebcf899a/attachment-0001.html>
------------------------------
Message: 2
Date: Thu, 14 Sep 2017 00:56:59 -0400
From: Alex Belanger <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] understanding type constructors and
value constructors
Message-ID:
<cadsky2y_tzmaw03_ur8fyqmej04ogfzjnq10ejqzmkyegaz...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
I'm on my phone which makes replying painful, but consider:
data Weekday = Monday | Tuesday | Wednesday | Thursday | Friday
data Shape = Circle Int | Rectangle Int Int Int Int | Triangle Int Int
data Either a b = Left a | Right b
Cheers,
Alex
On Sep 14, 2017 12:05 AM, "Anwar Ludin" <[email protected]> wrote:
> Hello everyone,
>
> I have just started studying Haskell and I am having a hard time
> understanding type and value constructors.
>
> So to create a new type, you write something like:
>
> data FinancialInstrument = Financial String Double
> deriving (Eq, Show)
>
> and then you can write:
>
> ibm = Financial "ibm" 150
>
> OK all good. This initializes a FinancialInstrument. What I don't quite
> grasp is what is the purpose of Financial (the data/value constructor)? And
> from what I have read, you could have also written:
>
> data FinancialInstrument = FinancialInstrument String Double
> deriving (Eq, Show)
>
> To me the second expression is a lot closer to the typical OOP way of
> doing things (where the type name and constructor(s) have the same name).
> Why would someone prefer the first notation?
>
> Once a value has been constructed, how can I access its fields?
>
> Is there a way to create values using named parameters?
>
> Thanks!
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20170914/ec5fea45/attachment-0001.html>
------------------------------
Message: 3
Date: Thu, 14 Sep 2017 08:18:07 +0300
From: Imants Cekusins <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] understanding type constructors and
value constructors
Message-ID:
<cap1qinztxftwnv3qbsfqwdoww-oru7sr8x0h3rc89_9ww3v...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
This chapter details it:
http://book.realworldhaskell.org/read/defining-types-streamlining-functions.html
More questions are welcome, of course.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20170914/84a62064/attachment-0001.html>
------------------------------
Message: 4
Date: Thu, 14 Sep 2017 07:19:24 +0000
From: Anwar Ludin <[email protected]>
To: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
Cc: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
Subject: Re: [Haskell-beginners] understanding type constructors and
value constructors
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20170914/69d9acc0/attachment-0001.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 111, Issue 10
******************************************