functional.py 0.7 - Functional programming in Python
Bryn Keller
brk@jenkon.com
Wed, 18 Oct 2000 15:57:19 GMT
I'm pleased to announce the release of functional.py version 0.7,
released under the GNU LGPL.
functional.py can be obtained from:
http://sourceforge.net/projects/xoltar-toolkit/
Release Name: 0.7
functional.py provides support for a functional style of Python
programming.
It includes support for closures, curried functions, many higher-order
functions for composing, joining or otherwise manipulating functions
and other callables.
New in this release:
All the functors (callable classes) now descend from Functor, a
class which
provides facilities for masquerading as a function. This allows
things like
curries and disjoins to be passed to code which expects to be able
to
inspect it for things like the names of its arguments, default
values, etc.
These functors all provide a SimCode instance as their func_code
attribute,
which has most of the information that a real code object would
have, which
helps complete the illusion.
This release fixes bugs which affected the curry and rcurry
functors. As a
result, curry and rcurry will now work with any callable, not only
functions
and methods. This includes *classes* as well, so you can now pass a
class
as the first argument to curry, and when the curried function is
called,
the return value will be a new instance of the class.
The Lazy and LazyTuple classes, along with related items, have been
removed
to their own module, lazy.py.
Changes:
10/18/2000 - Version 0.7:
Fix for bug in getMinimumArgCount which returned misleading results
for callables.
Allow classes as first argument to curry and rcurry.
All functors now Functor subclasses.
Removed lazy functionality to lazy.py
10/12/2000 - Version 0.6:
Fix for LazyTuples of length zero (thanks to Alex Martelli)
Added new functions/functors:
sequential
also
any_args
always
with_error
attempt
10/1/2000 - Initial release 0.5
--
Bryn Keller
xoltar@starship.python.net