Skip to content

Instantly share code, notes, and snippets.

@rikyperdana
Last active June 23, 2023 16:16
Show Gist options
  • Save rikyperdana/4a568c946f715b75b8c476e452bed334 to your computer and use it in GitHub Desktop.
Save rikyperdana/4a568c946f715b75b8c476e452bed334 to your computer and use it in GitHub Desktop.
Functional Python
def reduce(list, init, func):
for i in list: init = func(init, i)
return init
filter = lambda list, func: [i for i in list if func(i)]
find = lambda list, func: filter(list, func)[0]
map = lambda list, func: [func(i) for i in list]
sum = lambda list: reduce(list, 0, lambda a, b: a + b)
mul = lambda list: reduce(list, 1, lambda a, b: a * b)
ors = lambda list: find(list, bool)
ands = lambda list: all(list) and list[-1]
uniq = lambda arr: map(list(set(map(arr, str))), eval)
array = lambda n, func = lambda x: x: map([*range(n)], func)
def flatten(val):
try:
for i in val: yield from flatten(i)
except TypeError: yield val
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment