Python相当于Scheme Apply

时间:2012-03-05 18:42:14

标签: python functional-programming scheme

Python是否具有与scheme的apply相同的功能?我注意到Python的reduce对两个参数的函数起作用,并递归地应用它,这是非常不同的。

我应该自己写吗?我缺少一些模块吗?

2 个答案:

答案 0 :(得分:5)

Python相当于Scheme的应用是在参数上使用*和/或**前缀。

例如:

>>> my_list = [1, 2]
>>> operator.add(*my_list)
3

*前缀用于位置参数的序列,**前缀用于字典中的关键字参数。 (这反映了它们在形式参数声明中的用法。)

答案 1 :(得分:2)

虽然参数解包(如Laurence的论证所示)是正确的方法来做你想要的(也就是说,它被认为是最好的Python风格),但从技术上来说,与Scheme的apply相当的精确Python是Python的{ {3}},即使现已弃用。