Code Explainers
Code explainers tagged #recursion
php
final class ConfigResolver { private array $merged;
Layered config merging in PHP
recursion
immutability
variadics
Intermediate
8 steps
typescript
type Change = | { kind: "added"; path: string; value: unknown } | { kind: "removed"; path: string; value: unknown } | { kind: "updated"; path: string; from: unknown; to: unknown };
Building a recursive deep-diff in TypeScript
recursion
discriminated-unions
type-guards
Intermediate
9 steps
rust
use std::fs; use std::io; use std::path::{Path, PathBuf};
Recursive file search by extension in Rust
recursion
filesystem
error-handling
Intermediate
8 steps
ruby
module ConfigMerge module_function def deep_merge(base, override)
Recursively merging nested config hashes in Ruby
recursion
hash-merge
immutability
Intermediate
8 steps
ruby
module DeepFreeze module_function def call(obj)
Recursively freezing nested Ruby data
recursion
immutability
pattern matching
Intermediate
9 steps
python
from functools import lru_cache import math
Memoizing number theory with lru_cache
memoization
number-theory
caching
Intermediate
8 steps
python
from collections import ChainMap from functools import reduce from typing import Any, Iterable, Mapping
Five ways to merge dicts in Python
dictionaries
merging
recursion
Intermediate
8 steps
ruby
class ConfigFlattener def initialize(config) @config = config end
Flattening nested config into dotted keys
recursion
hashes
tree-traversal
Intermediate
8 steps
ruby
def build_tree(rows, root_id: nil) children_by_parent = Hash.new { |hash, key| hash[key] = [] } rows.each do |row|
Building a tree from flat rows in Ruby
recursion
hash-grouping
tree-structure
Intermediate
5 steps
php
function memoize(callable $fn): callable { $cache = [];
How memoization works in PHP closures
memoization
closures
higher-order-functions
Intermediate
8 steps
python
from collections.abc import Mapping from typing import Any, Iterator
Flattening nested config into dotted keys
recursion
generators
tree-traversal
Intermediate
7 steps
ruby
require 'json' require 'set' class SensitiveScrubber
Recursively scrubbing secrets from JSON
recursion
data-masking
pattern-matching
Intermediate
7 steps
python
from pathlib import Path def print_tree(root, prefix="", show_hidden=False):
Printing a directory tree with recursion
recursion
filesystem
sorting
Intermediate
6 steps
python
from dataclasses import dataclass, fields, MISSING from typing import get_type_hints, get_origin, get_args, Union
Type-checking dataclasses at runtime
dataclasses
type-hints
runtime-validation
Advanced
8 steps
typescript
type CloneInput = Record<string, unknown> | unknown[] | Map<unknown, unknown> | Set<unknown>; export function deepClone<T>(value: T): T { if (typeof structuredClone === "function") {
Building a deepClone with cycle safety
recursion
deep-copy
cycle-detection
Intermediate
8 steps
python
from functools import wraps def memoize(func):
Building a memoize decorator in Python
decorators
closures
memoization
Intermediate
5 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
java
public final class BusinessDays { private BusinessDays() { }
Counting business days between two dates in Java
date arithmetic
utility class
streams
Intermediate
7 steps