-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Dear Colleagues,
I am pleased to announce that there are new releases
of the Curry systems PAKCS and KiCS2 available for download at
http://www.informatik.uni-kiel.de/~pakcs/download.html
http://www-ps.informatik.uni-kiel.de/kics2/download.html
Apart from various bug fixes and library extensions,
the new releases support Haskell style records
(datatypes with field labels). As some of you might
remember, a couple of years ago there was a discussion
about records for Curry and, as a result of some criticism
of Haskell's concept of records, Bernd Brassel worked
on integrating Leijen's extensible records in PAKCS.
Since this had never been implemented in its full generality
and Haskell still sticks to datatypes with field labels,
we decided to omit extensible records and added datatypes
with field labels, which is now available with the new
releases.
Hence, if you already used extensible records, you have to adapt
your programs a little bit (from our experience, usually a few
lines of code). Otherwise, your programs should not be affected
by this change.
The implemented syntax is quite similar to Haskell (see the
manuals of PAKCS and KiCS2) but with two changes:
1. If a record is constructed but some field values are not
provided, these missing fields are initialized with free
variables, e.g.,
data Person = Person {name :: String, age :: Int}
> Person {age=42}
Result: Person _a 42
Haskell initializes these missing fields with undefined,
but free variables seem better represent missing information
in a functional logic context.
2. Field labels can not be exported without their constructors,
otherwise the translation scheme (as shown in the Haskell
report) does not work. Nevertheless, one can export the
field labels together with the constructor, e.g., by
module M(Person(..)) where ...
I hope you enjoy it.
Final remark: since now three major Curry systems (KiCS2/MCC/PAKCS)
support datatypes with field lables, it might be also reasonable
to include it in the Curry report (e.g., as defined in the
PAKCS/KiCS2 manuals).
Any comments and suggestions are welcome!
Best regards,
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iD4DBQFVAaKFO1lSlSAcKwIRAjweAJY0amR5g6kfuKs7o+IiBAKjADcEAKCcLena
Bbrri199QrE5EWY0Icj6iA==
=7y3P
-----END PGP SIGNATURE-----
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Do Mär 12 2015 - 15:29:29 CET