@Alex,
I'm on my phone which makes replying painful, but consider:data Weekday = Monday | Tuesday | Wednesday | Thursday | Fridaydata Shape = Circle Int | Rectangle Int Int Int Int | Triangle Int Intdata Either a b = Left a | Right bCheers,AlexOn Sep 14, 2017 12:05 AM, "Anwar Ludin" <anwar.ludin@gmail.com> 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 Doublederiving (Eq, Show)and then you can write:ibm = Financial "ibm" 150OK 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 Doublederiving (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
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners