Skip to content

Instantly share code, notes, and snippets.

@naufalafif
Last active October 9, 2020 22:14
Show Gist options
  • Save naufalafif/9aedc184f1caf24fb482065005feddeb to your computer and use it in GitHub Desktop.
Save naufalafif/9aedc184f1caf24fb482065005feddeb to your computer and use it in GitHub Desktop.
def memoize(func):
""" function ini menerima function lain sebagai argument & menyimpan hasil dari function tersebut"""
memory = {} # variable yang menyimpan hasil dari eksekusi function
def wrapper(*args, **kwargs):
# menyimpan arguments sebagai key dari memory
key = (args,tuple(kwargs))
# jika pemanggilan function serupa ada dimemory maka return hasil dari memory
if key in memory.keys():
return memory[key]
# memanggil function sebenarnya
result = func(*args, **kwargs)
# menyimpan hasil dari eksekusi function
memory[key] = result
return result
return wrapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment