problem with curring in python

Antoon Pardon antoon.pardon at vub.be
Tue Oct 22 06:15:46 EDT 2019


On 22/10/19 12:02, Terry Reedy wrote:
> On 10/22/2019 4:58 AM, Antoon Pardon wrote:
>> Using python 3.5
>>
>> I have been experimenting with curried functions. A bit like in Haskell.
>> So I can write the following function:
>>
>> def sum4(a, b, c, d):
>>      return a + b + c + d
>>
>> summing = curry(sum4)
>>
>> print summing(1)(2)(3)(4) # this prints 10.
>>
>> The problem is I need the signature of the original function in order to
>> know when to finally call the function and return the actual result.
>> However buildin functions don't have a
>
> I believe most do.

Well I may have jumped to my conclusion, but those in operator don't seem
to have a signature.

>>> inspect.signature(operator.mul)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/inspect.py", line 2988, in signature
    return Signature.from_callable(obj, follow_wrapped=follow_wrapped)
  File "/usr/lib/python3.5/inspect.py", line 2738, in from_callable
    follow_wrapper_chains=follow_wrapped)
  File "/usr/lib/python3.5/inspect.py", line 2231, in _signature_from_callable
    skip_bound_arg=skip_bound_arg)
  File "/usr/lib/python3.5/inspect.py", line 2061, in _signature_from_builtin
    raise ValueError("no signature found for builtin {!r}".format(func))
ValueError: no signature found for builtin <built-in function mul>

-- 
Antoon.




More information about the Python-list mailing list