Δημοσιεύτηκε: 31 Μάιος 2010, 23:06
Χα, σε έπιασα απρόσεκτο Ιδομενέα. Η λέξη κλειδί είναι metaprogramming και decorators (σε python ξέρω πώς γίνεται αλλά γίνεται και σε άλλες γλώσσες) Δες αυτό:
- Κώδικας: Επιλογή όλων
import sys
sys.setrecursionlimit(10000000)
class Memo(object):
__cache={}
def __init__(self, func):
self.__func = func
def __call__(self,*args):
try:
return self.__cache[args]
except KeyError:
value = self.__func(*args)
Memo.__cache[args] = value
return value
@Memo
def fibonacci(n):
if n in (0,1): return n
return fibonacci(n-1) + fibonacci(n-2)
print fibonacci(2800)