[pure-lang-svn] SF.net SVN: pure-lang:[699] pure/trunk/ChangeLog
Status: Beta
Brought to you by:
agraef
|
From: <ag...@us...> - 2008-09-04 16:10:00
|
Revision: 699
http://pure-lang.svn.sourceforge.net/pure-lang/?rev=699&view=rev
Author: agraef
Date: 2008-09-04 16:10:09 +0000 (Thu, 04 Sep 2008)
Log Message:
-----------
Updated ChangeLog.
Modified Paths:
--------------
pure/trunk/ChangeLog
Modified: pure/trunk/ChangeLog
===================================================================
--- pure/trunk/ChangeLog 2008-09-04 01:32:56 UTC (rev 698)
+++ pure/trunk/ChangeLog 2008-09-04 16:10:09 UTC (rev 699)
@@ -1,3 +1,44 @@
+2008-09-04 Albert Graef <Dr....@t-...>
+
+ * lib/prelude.pure: Added the normal order fixed point combinator,
+ 'fix'.
+
+ * lib/prelude.pure: Overhaul of list operations in the prelude, so
+ that they properly work with "thunked" lists (streams). Where
+ possible, these operations have been redesigned to make them
+ non-strict, while keeping them tail-recursive for the parts of a
+ list which have already been evaluated.
+
+ In particular, the cat and catmap operations now handle infinite
+ streams of infinite streams, and hence list comprehensions can
+ draw values from infinite streams as well.
+
+ The 'list' function can be used to convert a (finite) stream to an
+ ordinary list, forcing its evaluation. Conversely, the new
+ 'stream' function converts an ordinary list (tuple, string) to a
+ stream.
+
+ There are a few other related changes in the prelude:
+
+ - The slicing operation (!!) is now implemented in a completely
+ generic way which works with any container data structure which
+ implements the indexing (!) operation. It also works properly if
+ both operands are infinite streams.
+
+ - Arithmetic sequences (..) now take an infinity (inf or -inf) as
+ the second operand and will generate the appropriate stream in
+ such cases.
+
+ - The repeat and cycle functions have been rewritten to make them
+ Haskell-compatible, i.e., they only take a single argument now and
+ generate infinite streams. Haskell's iterate function is now also
+ implemented. The previous versions of repeat and cycle, which take
+ an additional integer parameter to denote the desired length of
+ the result and return an ordinary (eager) list, are now available
+ under the names repeatn and cyclen. (To make cyclen compatible
+ with cycle, it now also returns a list if applied to a string, use
+ strcat to convert the result back to a string if needed.)
+
2008-09-01 Albert Graef <Dr....@t-...>
* interpreter.cc, runtime.cc, symtable.cc/h, lib/prelude.pure:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|