New PAKCS/KiCS2 releases available

From: Michael Hanus <mh_at_informatik.uni-kiel.de>
Date: Thu, 12 Mar 2015 15:28:21 +0100

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

This archive was generated by hypermail 2.3.0 : Do Feb 01 2024 - 07:15:12 CET