Skip to content

Instantly share code, notes, and snippets.

@pascalchevrel
Last active July 6, 2023 14:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pascalchevrel/d2ac098ea2a1edb441de6df1739db195 to your computer and use it in GitHub Desktop.
Save pascalchevrel/d2ac098ea2a1edb441de6df1739db195 to your computer and use it in GitHub Desktop.
<?php
$results = [];
foreach (range(1, 100) as $x) {
$rule = fn($y) => is_int($x / $y);
$results[] = match(true) {
$rule(15) => 'fizzbuzz',
$rule(3) => 'fizz',
$rule(5) => 'buzz',
default => $x
};
}
assert(
$results ==
[
1, 2, 'fizz', 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz',
13, 14, 'fizzbuzz', 16, 17, 'fizz', 19, 'buzz', 'fizz', 22, 23,
'fizz', 'buzz', 26, 'fizz', 28, 29, 'fizzbuzz', 31, 32, 'fizz', 34,
'buzz', 'fizz', 37, 38, 'fizz', 'buzz', 41, 'fizz', 43, 44, 'fizzbuzz',
46, 47, 'fizz', 49, 'buzz', 'fizz', 52, 53, 'fizz', 'buzz', 56, 'fizz',
58, 59, 'fizzbuzz', 61, 62, 'fizz', 64, 'buzz', 'fizz', 67, 68, 'fizz',
'buzz', 71, 'fizz', 73, 74, 'fizzbuzz', 76, 77, 'fizz', 79, 'buzz',
'fizz', 82, 83, 'fizz', 'buzz', 86, 'fizz', 88, 89, 'fizzbuzz', 91, 92,
'fizz', 94, 'buzz', 'fizz', 97, 98, 'fizz', 'buzz'
]
);
print implode(PHP_EOL, $results);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment