[Haskell-beginners] Record types with multiple constructors
Magnus Therning
magnus at therning.org
Sun Dec 7 21:55:22 UTC 2014
On Sun, Dec 07, 2014 at 09:37:11AM +0000, Derek McLoughlin wrote:
> Hi,
>
> Record types usually have a single constructor. I've even seen blog
> posts that suggest that they must have a single constructor. However,
> multiple constructors are allowed:
>
> data Employee = RegularEmployee {
> name :: String
> } |
> Supervisor {
> name :: String,
> salesTarget :: Double
> }
> Manager {
> name :: String,
> salesTarget :: Double
> budget :: Double
> }
>
> I don't see this used much in Haskell code - either in explanatory
> books/tutorials or in code I've examined on GitHub. Are there
> drawbacks to using multiple constructors in this way?
I think you might see it fairly frequently in users of command line
parser libs, e.g. optparse-applicative[^1], for accepting
sub-commands.
/M
[^1]: http://hackage.haskell.org/package/optparse-applicative
--
Magnus Therning OpenPGP: 0xAB4DFBA4
email: magnus at therning.org jabber: magnus at therning.org
twitter: magthe http://therning.org/magnus
Perl is another example of filling a tiny, short-term need, and then
being a real problem in the longer term.
-- Alan Kay
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/beginners/attachments/20141207/6ea86e09/attachment.sig>
More information about the Beginners
mailing list