[q-lang-cvs] q NEWS,1.47,1.48
Brought to you by:
agraef
From: Albert G. <ag...@us...> - 2006-05-29 13:15:32
|
Update of /cvsroot/q-lang/q In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1640 Modified Files: NEWS Log Message: updated NEWS file Index: NEWS =================================================================== RCS file: /cvsroot/q-lang/q/NEWS,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** NEWS 29 May 2006 01:21:41 -0000 1.47 --- NEWS 29 May 2006 13:15:23 -0000 1.48 *************** *** 6,19 **** This release sports some critical bugfixes and optimizations in the ! interpreter as well as some experimental new features. The most important ! changes are there to improve the handling of special forms. In particular, ! there is now built-in support for memoization of special arguments, as well as ! call by need evaluation of arguments during pattern matching. This makes it ! much easier to work with lazy data structures like streams. Usage of both ! streams and lists is also facilitated by the new syntactic sugar for stream ! objects and enumerations, as well as lists and stream comprehensions. Most of ! the remaining little warts of Q which I am aware of have been cured as well. ! Despite all the new stuff under the hood, the changes are rather unobtrusive ! so most existing scripts should work with little or no changes. As usual, please check the ChangeLog file and the language manual for all the --- 6,18 ---- This release sports some critical bugfixes and optimizations in the ! interpreter as well as some important new features. Most changes are there to ! improve the handling of special forms. In particular, Q now has built-in ! support for memoization of special arguments, call by need evaluation of ! arguments during pattern matching, built-in lambda, and syntactic sugar for ! lambdas, stream objects and enumerations, as well as lists and stream ! comprehensions. Most of the remaining little warts of Q which I am aware of ! have been cured as well. Despite all the new stuff under the hood, the ! changes are rather unobtrusive so most existing scripts should work with ! little or no changes. As usual, please check the ChangeLog file and the language manual for all the *************** *** 50,55 **** work the same, using curly braces instead of the brackets. ! - Syntactic sugar for lambdas (see the discussion of the lambda function ! below). - Memoization of special arguments: There is a new memoization operator `&' --- 49,55 ---- work the same, using curly braces instead of the brackets. ! - Syntactic sugar for lambdas. Lambdas can now be written in the customary ! form \X.Y, where X is the lambda pattern and Y the lambda body, and the ! notation \X1 ... Xn.Y is provided as a shorthand for nested lambdas. - Memoization of special arguments: There is a new memoization operator `&' *************** *** 59,66 **** - Call-by-need pattern matching: As suggested by Yann Orlarey, special ! subterms of non-special args of a function application to be reduced will ! now be evaluated automatically as needed during the pattern matching ! process. This makes non-special functions, which need to perform pattern ! matching inside lazy data structures, do "the right thing". Note that only non-special arguments are treated in this manner. Special arguments still remain unevaluated during pattern matching, so that special forms can be --- 59,64 ---- - Call-by-need pattern matching: As suggested by Yann Orlarey, special ! subterms of non-special args of function applications will now be evaluated ! automatically as needed during the pattern matching process. Note that only non-special arguments are treated in this manner. Special arguments still remain unevaluated during pattern matching, so that special forms can be *************** *** 77,87 **** - The `lambda' function is now provided as a builtin which "compiles" lambdas ! to a special internal representation. Consequently, `lambda' itself and the ! stuff which depends on it is now generally much faster. Non-linear patterns ! and patterns involving the anonymous variable are now also handled ! correctly. Moreover, syntactic sugar is provided to write lambdas in the ! customary form \X.Y, where X is the lambda pattern and Y the lambda body, ! and \X1 ... Xn.Y is provided as a shorthand for nested lambdas. ! Note that, despite the new look and feel, lambda is still just an ordinary function, so Q's capabilities to manipulate lambdas on the symbolic level --- 75,81 ---- - The `lambda' function is now provided as a builtin which "compiles" lambdas ! to a special internal representation. As a result, `lambda' itself and the ! stuff which depends on it are now generally much faster. Non-linear patterns ! and patterns involving the anonymous variable are now also handled correctly. Note that, despite the new look and feel, lambda is still just an ordinary function, so Q's capabilities to manipulate lambdas on the symbolic level *************** *** 109,113 **** - The clib.q module now offers so-called "sentinels" as an additional type of lazy expression references. Sentinels are evaluated when the sentinel object ! is garbage-collected; this provides a means to implement ordinary Q data structures which perform automatic cleanup in the same fashion as some built-in and external data types. --- 103,107 ---- - The clib.q module now offers so-called "sentinels" as an additional type of lazy expression references. Sentinels are evaluated when the sentinel object ! is garbage-collected. This provides a means to implement ordinary Q data structures which perform automatic cleanup in the same fashion as some built-in and external data types. |