काल्पनिक समारोह repeatcall
, कि नो-आर्ग प्रतिदेय func
और उसे धन पूर्णांक n
तर्कों के रूप लेता है, और रिटर्न जिसके सदस्य func()
n
बार क्रियान्वित करते हुए प्राप्त कर रहे हैं एक सूची पर विचार करें। ऐसा लगता है कि मूर्ख hijinks की एक अनंत धारा का समर्थन करता है:फ़ंक्शन को बार-बार कॉल करने के लिए फ़ंक्शन?
>>> repeatcall(lambda: id(dict()), 5)
[45789920, 45788064, 45807216, 45634816, 45798640]
>>> urandom = lambda: struct.unpack('Q', open('/dev/urandom').read(8))[0]
>>> repeatcall(urandom, 3)
[3199039843823449742, 14990726001693341311L, 11583468019313082272L]
>>> class Counter(itertools.count): __call__ = itertools.count.next
>>> repeatcall(Counter(100, -2), 4)
[100, 98, 96, 94]
मैं कसम खाता हूँ सकता है कि मैं repeatcall
पायथन 2.x मानक पुस्तकालयों में कहीं की तरह एक समारोह देखा है, लेकिन मैं यह नहीं मिल सकता है। अगर मैंने यह सपना देखा नहीं है, तो मानक लाइब्रेरी में क्या मुझे यह मिल सकता है?
पीएस: मुझे पता है कि यह खुद को रोल करने के लिए छोटा है, लेकिन मुझे पहियों को फिर से शुरू करने से नफरत है, खासकर वे मानक पुस्तकालय में हैं। मैं हूं कि मैं खुद को कैसे रोल करना चाहता हूं।
संपादित करें: यह और भी अधिक स्पष्ट है कि मैं नहीं कह रहा हूँ कि कैसे repeatcall
कोड करने के लिए बनाया है।
क्या यह सिर्फ एक सीमा में मैपिंग नहीं है? – gbulmer