diff --git a/node/debounce.js b/node/debounce.js new file mode 100644 index 0000000..9db1ef4 --- /dev/null +++ b/node/debounce.js @@ -0,0 +1,7 @@ +export function debounce(fn, waitMs) { + let timer; + return (...args) => { + clearTimeout(timer); + timer = setTimeout(() => fn(...args), waitMs); + }; +} diff --git a/python/stats.py b/python/stats.py new file mode 100644 index 0000000..80997ca --- /dev/null +++ b/python/stats.py @@ -0,0 +1,14 @@ +def mean(values): + if not values: + raise ValueError("values must not be empty") + return sum(values) / len(values) + + +def median(values): + if not values: + raise ValueError("values must not be empty") + ordered = sorted(values) + mid = len(ordered) // 2 + if len(ordered) % 2: + return ordered[mid] + return (ordered[mid - 1] + ordered[mid]) / 2