classification
Title: Partial function application 'from the right'
Type: enhancement Stage:
Components: Versions:
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: amaury.forgeotdarc, bennorth, ironfroggy
Priority: normal Keywords: patch

Created on 2009-02-09 13:59 by bennorth, last changed 2009-07-09 15:02 by amaury.forgeotdarc. This issue is now closed.

Files
File name Uploaded Description Edit
_functoolsmodule.patch bennorth, 2009-02-09 14:00 Patch to Modules/_functoolsmodule.c
test_functools.patch bennorth, 2009-02-09 14:01 Patch to Lib/test/test_functools.py
Messages (2)
msg81457 - (view) Author: Ben North (bennorth) * Date: 2009-02-09 13:59
The functools module includes a 'partial' class, which allows partial
function application either by positional arguments or keyword
arguments.  However, it cannot be used to create, for example, a
function splitting a string on commas, or a function to extracts logs to
base 10.  I posted

   http://mail.python.org/pipermail/python-dev/2009-January/085638.html

which suggested a 'partial_right' feature, such that the following would
work:

   >>> import functools, math

   >>> split_comma = functools.partial_right(str.split, ',')
   >>> split_comma('a,b,c')
   ['a', 'b', 'c']

   >>> log_10 = functools.partial_right(math.log, 10.0)
   >>> log_10(100.0)
   2.0

There was some useful discussion, but generally the feeling was that the
extra complexity outweighed the potential benefits.  Also, chained
partial applications were troublesome.

The overlap in functionality between 'partial_right' and an existing
patch (#1706256) to allow skipping of positional arguments was raised.

I think the present issue should probably be closed/rejected, but it was
suggested on the mailing list that having the issue and patch on the
record might be useful.  Patches are against 2.6.1 source.
msg90332 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2009-07-09 15:02
Closing as requested.
History
Date User Action Args
2009-07-09 15:02:11amaury.forgeotdarcsetstatus: open -> closed

nosy: + amaury.forgeotdarc
messages: + msg90332

resolution: rejected
2009-02-09 15:22:29ironfroggysetnosy: + ironfroggy
2009-02-09 14:01:18bennorthsetfiles: + test_functools.patch
2009-02-09 14:00:43bennorthsetfiles: + _functoolsmodule.patch
keywords: + patch
2009-02-09 13:59:19bennorthcreate