Code Explainers
Code explainers tagged #memoization
python
from functools import lru_cache class SpellingSuggester:
A spelling suggester with edit distance
edit-distance
dynamic-programming
memoization
Intermediate
9 steps
typescript
import { Pipe, PipeTransform, Inject, LOCALE_ID } from '@angular/core'; interface MoneyOptions { currency?: string;
Building a cached money pipe in Angular
pipes
memoization
internationalization
Intermediate
8 steps
ruby
require "phonelib" class PhoneNumber class InvalidNumber < StandardError; end
Wrapping phone parsing in a Ruby value object
value-object
memoization
validation
Intermediate
7 steps
typescript
type CurrencyFormatOptions = { locale?: string; currency: string; showDecimals?: boolean;
Caching Intl.NumberFormat for currency
memoization
internationalization
caching
Intermediate
9 steps
javascript
import { useRef, useState, useCallback, useMemo } from 'react'; export function VirtualList({ items, rowHeight = 40, height = 600, overscan = 5, renderRow }) { const [scrollTop, setScrollTop] = useState(0);
How a virtualized list works in React
virtualization
performance
memoization
Intermediate
8 steps
javascript
import { useState, useCallback, memo } from 'react'; const TodoItem = memo(function TodoItem({ todo, onToggle, onRemove }) { return (
Preventing re-renders in a React todo list
memoization
usecallback
referential-stability
Intermediate
8 steps
javascript
function memoize(fn, resolver) { const cache = new Map(); function memoized(...args) {
Building a memoize wrapper in JavaScript
memoization
closures
higher-order-functions
Intermediate
7 steps
javascript
const formatters = new Map(); function getFormatter(locale, currency) { const key = `${locale}:${currency}`;
Caching Intl.NumberFormat for currency formatting
memoization
internationalization
caching
Intermediate
8 steps
typescript
type AsyncFn<A extends unknown[], R> = (...args: A) => Promise<R>; interface MemoizeOptions<A extends unknown[]> { keyFn?: (...args: A) => string;
Memoizing async functions with TTL in TypeScript
memoization
generics
promises
Advanced
8 steps
python
from functools import lru_cache import math
Memoizing number theory with lru_cache
memoization
number-theory
caching
Intermediate
8 steps
ruby
class ReportGenerator def initialize(account, period) @account = account @period = period
Memoized report metrics in Ruby in Rails
memoization
query-composition
service-object
Intermediate
7 steps
php
function memoize(callable $fn): callable { $cache = [];
How memoization works in PHP closures
memoization
closures
higher-order-functions
Intermediate
8 steps
ruby
require "csv" class SalesReport def initialize(path)
Aggregating CSV sales data in Ruby
data-aggregation
memoization
group_by
Intermediate
6 steps
rust
use std::collections::HashMap; pub struct Memoizer<K, V, F> { cache: HashMap<K, V>,
A generic memoizer in Rust
memoization
generics
caching
Intermediate
6 steps
java
import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.math.BigInteger;
A thread-safe memoized factorial cache
memoization
thread-safety
caching
Intermediate
6 steps
python
from functools import wraps def memoize(func):
Building a memoize decorator in Python
decorators
closures
memoization
Intermediate
5 steps
javascript
import { useMemo, useState } from 'react'; function ProductList({ products }) { const [query, setQuery] = useState('');
Memoizing a filtered list in React
memoization
derived-state
filtering
Intermediate
8 steps
ruby
module Fibonacci CACHE = Hash.new do |cache, n| cache[n] = cache[n - 1] + cache[n - 2] end
Memoizing Fibonacci with a Hash default block
memoization
recursion
hash-default
Intermediate
5 steps